2017-12-25 12 views
0

私は機械学習の初心者です。私はpython StandardScalerクラスを使用して、入力トレーニングとテストデータにフィーチャスケーリングを使用しようとしています。しかし、スケールされた値を見ると、入力値に負の値がなくても負の値になるものがあります。これは正常なのでしょうか、私のコードには何も分かりません。フィーチャスケーリングに関連するコードが使用されています。 docsからpythonを使ったフィーチャスケーリングStandardScalerは負の値を生成します

from sklearn.preprocessing import StandardScaler 
sc = StandardScaler() 
train = sc.fit_transform(train) //train contains training feature matrix 
test = sc.transform(test) //test contains test feature matrix 

答えて

2

(x-mean)/std(ここで、すべての次元に変換、入力xを与え、これは、

単位分散に平均値を除去し、スケーリングすることにより機能を標準化操作は明確に定義されています)。

ご入力値がすべて正であるので、場合でも、平均値を削除すると、それらのいくつかは負にすることができます。

>>> x = np.array([3,5,7]) 
>>> np.mean(x) 
5.0 
>>> x - np.mean(x) 
array([-2., 0., 2.]) 

詳細:

関連する問題