今回は、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() 関数
を適用しました。
結果は以下の通りです。
2. StandardScaler() 関数の使用
Python の sklearn library
は、データセットに対して標準化を行うための `StandardScaler()’ 関数を提供してくれます。
ここでは、Iris データセットを使用します。
さらに、StandardScaler() のオブジェクトを作成し、 fit_transform() 関数
を適用して、データセットに標準化を適用しています。
結果は以下の通りです。
この記事もチェック:Pythonでデータセットから別のデータセットへピボットテーブルを作成する
まとめ
ここまでで、このトピックは終了です。
何か疑問があれば、お気軽にコメントください。
それでは、今後ともよろしくお願いいたします。