Why does the standardization with sklearn.preprocessing.StandardScaler
in Python differ to zscore
in Matlab?
Example with sklearn.preprocessing
in Python:
>>> from sklearn.preprocessing import StandardScaler
>>> data = [[0, 0], [0, 0], [1, 1], [1, 1]]
>>> scaler = StandardScaler()
>>> scaler.fit(data)
>>> print(scaler.mean_)
[ 0.5 0.5]
>>> print(scaler.var_)
[0.25 0.25]
>>> print(scaler.transform(data))
[[-1. -1.]
[-1. -1.]
[ 1. 1.]
[ 1. 1.]]
The same example in Matlab with zscore
function:
>> data = [[0, 0]; [0, 0]; [1, 1]; [1, 1]];
>> [Sd_data,mean,stdev] = zscore(data)
Sd_data =
-0.8660 -0.8660
-0.8660 -0.8660
0.8660 0.8660
0.8660 0.8660
mean =
0.5000 0.5000
stdev =
0.5774 0.5774