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