スケーリングと正規化
メニューを表示するにはスワイプしてください
データ内の数値特徴量は、しばしば非常に異なるスケールを持っており、これは機械学習アルゴリズムの性能に悪影響を及ぼすことがあります。特に距離計算を利用するアルゴリズムや正規分布を仮定するアルゴリズムでは顕著です。スケーリングは、すべての特徴量がモデル学習に均等に寄与することを保証します。
主なスケーリング手法は次の2つです:
- 正規化(Normalization):特徴量を固定範囲、通常は
0から1の間に再スケーリングします; - 標準化(Standardization):特徴量を平均
0、標準偏差1となるように変換します。
それぞれの手法はデータの範囲を異なる方法で変更し、特定の状況に最適です。
1234567891011121314151617181920212223242526272829import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler # Load Titanic dataset from seaborn import seaborn as sns titanic = sns.load_dataset('titanic') # Select numerical features for scaling features = ['age', 'fare', 'sibsp', 'parch'] df = titanic[features].dropna() # Standardization scaler_standard = StandardScaler() df_standardized = pd.DataFrame( scaler_standard.fit_transform(df), columns=df.columns ) # Normalization scaler_minmax = MinMaxScaler() df_normalized = pd.DataFrame( scaler_minmax.fit_transform(df), columns=df.columns ) print("Standardized Data (first 5 rows):") print(df_standardized.head()) print("\nNormalized Data (first 5 rows):") print(df_normalized.head())
各スケーリング手法の利用タイミング
**標準化(Standardization)**は、データがガウス分布(正規分布)に従う場合や、linear regression、logistic regression、k-means clusteringのように中心化されたデータを前提とするアルゴリズムで最適です。
**正規化(Normalization)**は、すべての特徴量を同じスケールに揃えたい場合、特にk-nearest neighborsやneural networksのような距離尺度を利用するアルゴリズムで推奨されます。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 5
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 5