標準化されたシーケンスデータ

1308 ワード

1つのデータセットを標準化することは、観測値の平均値が0、標準差が1になるように値の分布を再調整することに関する.これは、データが平均数または中心化されたデータを減算したと考えられる.
正規化と同様に、標準化は有用であり、一部の機械学習アルゴリズムでも、データに異なるスケールの入力値がある場合に必要です.標準化は、観測値がGauss分布(ベル曲線)に合致し、良好な平均値と標準差を有すると仮定します.この期待を満たさないと、時間系列データを標準化することができますが、信頼できる結果は得られない可能性があります.
標準化には、観測値の平均値と標準差を知っているか、正確に推定できる必要があります.訓練データからこれらの値を推定することができます.データセットの平均値と標準差推定は,最小値と最大値よりも新しいデータに対するロバスト性が高い.scikit-learnオブジェクトのStandardScaleを使用して、データセットを標準化できます.
from sklearn.preprocessing import StandardScaler
from pandas import Series
from math import sqrt

data = [1.0, 5.5, 6.3, 9.2, 8.0, 8.4, 9.9, 10.0]
series = Series(data)
value = series.values.reshape(len(series), 1)
print(value)

scaler = StandardScaler().fit(value)
standardized = scaler.transform(value)
print(type(scaler))
print("   :%f,      :%f" % (scaler.mean_,  sqrt(scaler.mean_)))
print("    :
", standardized) inversed = scaler.inverse_transform(standardized) print(inversed) ''' : [[ 1. ] [ 5.5] [ 6.3] [ 9.2] [ 8. ] [ 8.4] [ 9.9] [10. ]] :7.287500, :2.699537 : [[-2.23542309] [-0.6355179 ] [-0.35109031] [ 0.67995971] [ 0.25331832] [ 0.39553212] [ 0.92883385] [ 0.9643873 ]] [[ 1. ] [ 5.5] [ 6.3] [ 9.2] [ 8. ] [ 8.4] [ 9.9] [10. ]] '''