機械学習のためにPython(sklearn)でデータを標準化する2つの簡単な方法

スポンサーリンク

今回は、Pythonでデータを標準化するための2つの重要なテクニックに焦点を当てます。


スポンサーリンク

なぜPythonでデータを標準化する必要があるのでしょうか?

標準化の概念に深く入り込む前に、その必要性を知ることがとても重要です。

ある問題に対してモデルを構築するために使用するデータセットは、通常、様々なソースから構築されます。

従って、データセットには様々なスケールの変数/特徴が含まれていることが想定されます。

機械学習や深層学習のモデルがうまく機能するためには、結果に偏りが生じないように、データのFeatureのスケールが同じであることが非常に重要です。

そのため、Feature Scalingはモデリングに先立つ重要なステップと考えられている。

Feature Scalingは大きく分けて以下のようなカテゴリに分類される。

  • 正規化
  • 標準化

標準化は、「正規分布」しているデータに対して行われる。

また、標準化を行うことで、データセットの平均を0、標準偏差を1とする傾向がある。

つまり、値を標準化することで、データ分布の統計は次のようになります。

  • 平均値=0
  • 標準偏差=1
from sklearn.datasets import load_iris

このように、平均が0になり、単位分散になることで、データセットが自己説明的になり、分析が容易になります。


Pythonでデータを標準化する方法

それでは、次のセクションでStandardizationを実装する様々な方法に焦点を当てましょう。

1. プリプロセッシング.scale()関数の使用法

平均が0、標準偏差が1になるようにデータを標準化するには、`preprocessing.scale(data)’ 関数を使用します。

ここでは、以下の行を使用してIRISデータセットを環境にロードしています。

from sklearn import preprocessing
data = load_iris()
 
# separate the independent and dependent variables
X_data = data.data
target = data.target
 
# standardization of dependent variables
standard = preprocessing.scale(X_data)
print(standard)

さらに、IRISデータセットを以下のようにデータオブジェクトに保存しています。

from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
 
data = load_iris()
scale= StandardScaler()
 
# separate the independent and dependent variables
X_data = data.data
target = data.target
 
# standardization of dependent variables
scaled_data = scale.fit_transform(X_data)
print(scaled_data)

従属変数と応答/目標変数を分離した後、データを標準化するために、従属変数に preprocessing.scale() 関数 を適用しました。

結果は以下の通りです。

Standardization 1
Standardization

2. StandardScaler() 関数の使用

Python の sklearn library は、データセットに対して標準化を行うための `StandardScaler()’ 関数を提供してくれます。

ここでは、Iris データセットを使用します。

さらに、StandardScaler() のオブジェクトを作成し、 fit_transform() 関数 を適用して、データセットに標準化を適用しています。

Standardization Output
Standardization-Output

結果は以下の通りです。

Standardization Output 1
Standardization-Output

まとめ

ここまでで、このトピックは終了です。

何か疑問があれば、お気軽にコメントください。

それでは、今後ともよろしくお願いいたします。

タイトルとURLをコピーしました