【機械学習】sklearnで訓練用・テスト用データで分割する方法
当ページのリンクには広告が含まれています。
機械学習を行う際には「訓練用データ」と「テスト用データ」の2種類を用意する必要があります。
なぜなら、モデル作成後の精度の確認などモデルの評価を行う必要があるからです。
今回はデータを簡単に分割できるtrain_test_split()
関数の使い方をご紹介します。
目次
分割方法—train_test_split()
sklearn.model_selection
.train_test_split
from sklearn.model_selection import train_test_split
sklearn.model_selection
からtrain_test_split
をインポートします。
使い方は簡単で、変数を4つ定義し、説明変数となるX、目的変数となるyを用意します。
今回は下記のようなデータを用意しました。
説明変数:X
sepal length (cm) | sepal width (cm) | petal length (cm) | petal width (cm) | |
---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 |
1 | 4.9 | 3.0 | 1.4 | 0.2 |
2 | 4.7 | 3.2 | 1.3 | 0.2 |
3 | 4.6 | 3.1 | 1.5 | 0.2 |
4 | 5.0 | 3.6 | 1.4 | 0.2 |
目的変数:y
target_names | |
---|---|
0 | 0 |
1 | 0 |
2 | 0 |
3 | 0 |
4 | 0 |
4つの変数は
- X_train
- X_test
- y_train
- y_test
と4つに分け、train_test_split()
にXとyを入力します。
X_train, X_test, y_train, y_test = train_test_split(X, y)
これでできました。簡単ですねー。実際に分割できているか確認してみます。
pandasのshape()
関数で見てみます。
print('X_train = {}'.format(X_train.shape))
print('X_test = {}'.format(X_test.shape))
print('y_train = {}'.format(y_train.shape))
print('y_test = {}'.format(y_test.shape))
X_train = (112, 4) X_test = (38, 4) y_train = (112, 1) y_test = (38, 1)
きちんと分割できていますね。
分割割合を変更—train_size, test_size
train_size, test_size
を引数として指定すると分割割合を変更できます。
引数を指定しない場合はテスト用データは全体の25%となります。
指定方法は0~1の中で指定し、30%の場合はtest_size=0.3
とします。
テストデータは全体の2~3割にするのが一般的のようです。
3割にしてみます。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
X_train = (105, 4) X_test = (45, 4) y_train = (105, 1) y_test = (45, 1)
割合が変わりました。
シード値の固定—random_state
分割の際に、行は毎回ランダムに選択されます。
乱数を固定する際には、random_state=数値
を引数とします。
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=5)
乱数を固定することにより、違う環境で行ってもモデル作成の結果を統一できます。
試しに先頭行を見てみると
sepal length (cm) | sepal width (cm) | petal length (cm) | petal width (cm) | |
---|---|---|---|---|
40 | 5.0 | 3.5 | 1.3 | 0.3 |
115 | 6.4 | 3.2 | 5.3 | 2.3 |
142 | 5.8 | 2.7 | 5.1 | 1.9 |
69 | 5.6 | 2.5 | 3.9 | 1.1 |
17 | 5.1 | 3.5 | 1.4 | 0.3 |
こんな感じになりました。
【MAE・RMSE・MAPE・R²】線形回帰モデルの評価関数の種類と計算方法
機械学習における評価関数とは「モデルの性能を定量的に評価するための関数」です。 作成するモデルによって使われる評価関数の種類は異なります。 今回は線形回帰モデ…
参考
機械学習・データ処理を学ぶのにおすすめの教材
じっくり書籍で学習するなら!
¥2,090 (2022/02/20 08:45時点 | Amazon調べ)
ポチップ
コメント