pianofisica

Mathematics & Physics, Maxima, a bit Python & Wolfram, and Arts

Pythonで学ぶ機械学習:データ処理

機械学習の具体的な問題にPythonを使って、機械学習Pythonも同時に学んでしまいましょう。今回は機械学習の精度を高めるうえで重要となる、データ処理についてまとめました。

この記事では scikit-learn(sklearn)ライブラリを用います。適宜

pip install scikit-learn

などによってダウンロード・インストールしてください。




 

データの前処理(標準化)

scikit-learn を使って標準化(Standardization)を行ってみます。標準化とは、データのスケールを調整して、平均値が 0、標準偏差が 1 となるようにすることです。これにより、それぞれ異なるスケールの特徴量を均一化することができ、モデルの学習がスムーズになります。

from sklearn.preprocessing import StandardScaler
import numpy as np

# サンプルデータ(身長・体重)
data = np.array([[160, 55], [170, 65], [180, 75]])

# 標準化
scaler = StandardScaler()
standardized_data = scaler.fit_transform(data)

print("標準化後のデータ:")
print(standardized_data)
標準化後のデータ:
[[-1.22474487 -1.22474487]
 [ 0.          0.        ]
 [ 1.22474487  1.22474487]]

ポイント

  • StandardScaler( ).fit_transform(data) でデータを標準化。
  • すべての特徴量の平均が0、標準偏差が1になるよう変換。

  

学習用・テスト用データへの分割

機械学習の学習過程では、データを学習用(train)とテスト用(test)に分割することが必要になります。ここではデータをランダムにシャッフルしたうえで、8:2の割合で学習用と訓練用に分割してみます。

from sklearn.model_selection import train_test_split
import numpy as np

# サンプルデータ(特徴量Xとターゲットy)
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]])
y = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

# データを8:2に分割(80%を訓練用、20%をテスト用)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 結果を表示
print("学習用データ:", X_train.flatten())
print("テスト用データ:", X_test.flatten())
学習用データ: [ 6  1  8  3 10  5  4  7]
テスト用データ: [9 2]

ポイント

  • train_test_split(X, y, test_size=0.2, random_state=42)
    • test_size=0.2 → 20%をテスト用にする
    • random_state=42 → 乱数シードを固定(再現性のため)

 


 
 

キーワード機械学習Python、基礎

プライバシーポリシー