まえがき
データ分析の前処理は、データの質を高め、正確な分析結果を得るために不可欠です。この記事では、データの標準化と正規化について学び、これらの手法がどのようにデータ分析に役立つかを具体的な例と共に説明します。
標準化
定義
標準化は、データの平均を0、標準偏差を1に変換する手法です。これにより、異なるスケールのデータを同じ基準で比較できます。
具体例
例えば、テストの点数が次のようなデータがあったとします。
学生 | 点数 |
---|---|
A | 80 |
B | 90 |
C | 70 |
D | 85 |
E | 75 |
このデータを標準化すると、各点数が平均からどれだけ離れているかが分かりやすくなります。
コード例
import pandas as pd
from sklearn.preprocessing import StandardScaler
# データフレームの作成
data = pd.DataFrame({
'Score': [80, 90, 70, 85, 75]
})
# 標準化
scaler = StandardScaler()
data_standardized = scaler.fit_transform(data)
print("Standardized DataFrame:")
print(data_standardized)
アウトプット
Standardized DataFrame:
[[-0.39223227]
[ 1.37281295]
[-1.15669818]
[ 0.49029034]
[-0.31417284]]
この結果から、例えばBの点数は平均より約1.37標準偏差高いことがわかります。
正規化
定義
正規化は、データを特定の範囲(通常は0から1)にスケール変換する手法です。これにより、異なるスケールのデータを同じ範囲に収めることができます。
具体例
例えば、製品の価格が次のようなデータがあったとします。
製品 | 価格 |
---|---|
A | 100 |
B | 300 |
C | 200 |
D | 400 |
E | 250 |
このデータを正規化すると、各価格が0から1の範囲にスケールされます。
コード例
from sklearn.preprocessing import MinMaxScaler
# データフレームの作成
data = pd.DataFrame({
'Price': [100, 300, 200, 400, 250]
})
# 正規化
scaler = MinMaxScaler()
data_normalized = scaler.fit_transform(data)
print("Normalized DataFrame:")
print(data_normalized)
アウトプット
Normalized DataFrame:
[[0. ]
[0.5 ]
[0.25]
[1. ]
[0.375]]
この結果から、例えば製品Bの価格は範囲内の0.5の位置にあることがわかります。
あとがき
標準化と正規化は、異なるスケールのデータを同じ基準で評価・比較するために不可欠な手法です。これらの前処理を適用することで、データの品質を向上させ、分析結果の信頼性を高めることができます。