R による標準化については以前に書きました: データの標準化 - R に基づく
正規化
データを [0,1] にスケールします (min—max 正規化)
X ∗ = X i − X min X max − X min X^{\ast}=\frac{X_i-X_{min}}{X_{max } -X_{分}}バツ∗=バツマックス_ _−バツ私は_バツ私は−バツ私は_
上記の正規化は通常、
平均と呼ばれます。正規化
X ∗ = X i − means ( X ) X max − X min X^{\ast}=\frac{X_i-mean(X)}{X_{max}-X_{分}}バツ∗=バツマックス_ _−バツ私は_バツ私は−平均(X) _ _ _
Pythonの実装
今回は numpy モジュールと scikit-learn モジュールを使用します。これらは自分でインストールしてください。
import numpy as np
from sklearn import preprocessing
まず乱数を使用して 10 行 10 列のデータフレームを生成します。
feature=a=np.random.randint(low=10, high=20, size=(10,10))
feature
まずスケーラーを作成します。コード内の範囲がスケールする範囲であることに注意してください。
#创建缩放器
minmax_scale=preprocessing.MinMaxScaler(feature_range=(0,1))#这里的feature是固定的与数据名无关
scale_feature=minmax_scale.fit_transform(feature)#这里的future就是数据名
print(scale_feature)
出力結果:
完全なコード: 出力結果がない場合は、印刷を追加してください
import numpy as np
from sklearn import preprocessing
#%% md
#%%
x=a=np.random.randint(low=10, high=20, size=(10,10))
# feature
#创建缩放器
minmax_scale=preprocessing.MinMaxScaler(feature_range=(0,1))
scale_feature=minmax_scale.fit_transform(x)
scale_feature
標準化
データを平均 0、標準偏差 1 の分布に変換します。必ずしも標準正規分布である必要はありません。
X ∗ = X i − μ σ X^{\ast}=\frac{X_i-\mu}{\sigma}バツ∗=pバツ私は−メートル
ここで、μ は平均、σ は標準偏差です。
データを標準化しても元のデータの分布は変わりません。元のデータが正規分布に従えば、標準化されたデータも標準正規分布に従います。
Pythonの実装
まだ同じライブラリを使用しています
import numpy as np
from sklearn import preprocessing
x=a=np.random.randint(low=10, high=20, size=(10,10))
#创建缩放器
minmax_scale=preprocessing.StandardScaler()
#转换特征
scale_feature=minmax_scale.fit_transform(x)
scale_feature
正規化されたデータ
正規化された平均と分散を出力します。
print(f"标准化后的均值为{
round(scale_feature.mean(),2)},标准化后的均值为{
round(scale_feature.std(),3)}")
正規化された平均は -0.0、正規化された平均は 1.0
一般に、2 番目の方がよく使用されます