非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python/scikit-learn】特徴量の正規化についての解説とプログラミング例

   

Scikit-learnでの特徴量の正規化(Normalization)は、データのスケールを標準化するプロセスで、特に機械学習モデルの性能を向上させるために重要です。例えば異なる範囲を持つ特徴量を同一のスケールに揃えることで勾配降下法などのアルゴリズムがより効率的に収束します。

代表的な特徴量の正規化方法としては、平均0、分散1にスケールする標準化(StandardScaler)、0〜1の範囲にスケールするMin-Maxスケーリング(MinMaxScaler)などがあります。

以下はStandardScaler と MinMaxScaler を使った特徴量の正規化の例です。

 

from sklearn.preprocessing import StandardScaler, MinMaxScaler
import numpy as np

# ダミーデータを作成
data = np.array([[1, 2, 3],
                 [33, 52, 61],
                 [217, 298, 319]])

# 標準化(StandardScaler)
scaler_standard = StandardScaler()
data_standard_scaled = scaler_standard.fit_transform(data)

print("StandardScalerで標準化したデータ:")
print(data_standard_scaled)
print("\n")

# Min-Maxスケーリング(MinMaxScaler)
scaler_minmax = MinMaxScaler()
data_minmax_scaled = scaler_minmax.fit_transform(data)

print("MinMaxScalerでスケーリングしたデータ:")
print(data_minmax_scaled)
 

 

 

出力結果はこちら。

StandardScalerで標準化したデータ:
[[-0.86851431 -0.89149206 -0.90766005]
 [-0.53231522 -0.50500706 -0.48537971]
 [ 1.40082954  1.39649912  1.39303976]]

MinMaxScalerでスケーリングしたデータ:
[[0.         0.         0.        ]
 [0.14814815 0.16891892 0.1835443 ]
 [1.         1.         1.        ]]
 

 

 

スポンサーリンク

 - Python