I'm trying to reproduce an algorithm designed in a paper. And everything is going well except one thing:

It says we considered the lengths zero-meaned accelerometer vectors and created a feature for the mean and standard deviation of this value. and I do not understand what is it zero-meaned vectors?

Example dataset:

-0.6946377 12.680544 0.50395286 5.012288 11.264028 0.95342433 4.903325 10.882658 -0.08172209 -0.61291564 18.496431 3.0237172 -1.1849703 12.108489 7.205164 1.3756552 -2.4925237 -6.510526 -0.61291564 10.56939 5.706926 -0.50395286 13.947236 7.0553403

Can any body help me?

I found only this information https://www.quora.com/What-does-it-mean-when-a-vector-is-zero-mean but I'm not sure about it.

Thank you.


2 Answers 2


"Zero-meaned" means the vector has been transformed so that its mean is 0.

Typically, you would do this by subtracting the mean of each column from that column. (This is for dimensional as well as algorithmic reasons; you don't want to subtract a person's weight from their height.)

It sounds like here they're actually talking about the row mean--that is, $(-0.6946377, 12.680544, 0.50395286)$ would be transformed to $(-4.857924, 8.5172577, -3.65933344, 4.1632863, 7.40047)$, where the first three are the original features minus the row mean, the fourth is the row mean, and the fifth is the standard deviation of the original features.

This would make sense if the three have the same units (if they're all accelerations at the same scale, this works), and so you want a separate measure of how much it's being accelerated at all and how much it's being accelerated in a particular direction.

  • $\begingroup$ I just realized they were likely talking about the row mean as well. go figure. $\endgroup$ Commented Sep 25, 2016 at 16:11
  • $\begingroup$ You're right. It's all about accelerometer data and it's row-based. Thank you. Now I understand. It looks like it's very simple idea behind the term. $\endgroup$
    – Arsen
    Commented Sep 25, 2016 at 17:12

Mean centering is one of many related techniques to preprocess data for downstream analysis in multivariate methods.

It might sound odd at first, but it means exactly what it says: the vector has a mean of zero. In pseudocode, (sum(vector) / len(vector)) == 0.

In multivariate data, this typically is applied along each column in a dataset so each column can be more easily compared to another within a similar range of data. After mean centering, each row only includes how it differs from the average sample from that variable in the original data. Typically, samples are also scaled to have unit variance as well, allowing you to more readily compare the data across continuous variables with different ranges.

For example, if you had a dataset of patients with variables height, weight, age, household_income, despite each variable being a continuous value each of these variables will be in different range. Height might be between 60 -- 75 inches, weight between 100 -- 300 lbs, and so on.

Why do all this? Removing the mean and standardizing the variance will help downstream methods not 'learn' the mean and variance of your data, making it easier to find relationships between variables. Many assume that your data is centered / scaled / normalized in some way and will behave poorly if you don't do so.

  • $\begingroup$ Yep! Sorry I missed the row-centering on the first pass. :) $\endgroup$ Commented Sep 25, 2016 at 17:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.