機械学習を行う際には「訓練用データ」と「テスト用データ」の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調べ)

動画で学習するなら!
【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
機械学習・ディープラーニング・人工知能に関するビジネス上の課題を、回帰分析・ニューラルネットワーク・K平均法等を使って解いていきます。python、jupyter、numpy、pandas、tensorflow等のスキルも身に付きます。
【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 初級編 –
1000人以上が受講している(株)キカガクの『脱ブラックボックスセミナー』が遂に登場!機械学習の参考書を「閉じてしまった人」への再入門に最適な講座です。微分・線形代数といった数学の基礎からPythonでの実装まで短時間で習得しましょう。
【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 中級編 –
日本語トップコースである【キカガク流】脱ブラックボックス講座の中級編が遂に登場!「キカガクの知識は現場で使える!」そんな講座を目指しました。微分・線形代数といった数学の基礎からPythonでの実装まで短時間で習得しましょう。
本気で取り組むならまずは相談!
自走できるAI人材になるための6ヶ月長期コース【キカガク】
(日本ディープラーニング協会)E資格認定講座!
これまでの受講者数30,000人以上! ・AI人材となり市場価値を高めたい方へ!
コメント