機械学習

scikit-learnのtrain_test_splitメソッドで入力データを分割してみた

Python で利用できるデータ分析や機械学習のためのライブラリの一つであるscikit-learnには、(回帰直線の算出元である)入力データを、訓練用データとテストデータに分割できるtrain_test_splitメソッドがあり、これを利用すると、訓練用データから生成した回帰直線を、テストデータを利用して検証することができる。

今回は、scikit-learnのtrain_test_splitメソッドを用いて、入力データを、訓練用データとテストデータに分割し検証してみたので、そのサンプルプログラムを共有する。

scikit-learnのtrain_test_splitメソッドを用いて、(回帰直線の算出元である)入力データを、訓練用データとテストデータに分割した結果は、以下の通り。

train_test_splitメソッドによる入力データの分割

なお、train_test_splitメソッドでrandom_stateを指定すると、実行結果は上記の内容で毎回固定になるが、random_stateを指定しないと、以下のように、実行する度に、訓練用とテスト用のデータ分割内容が異なっている。

●1回目の実行結果
train_test_splitメソッドでrandom_stateを指定しない場合_1

●2回目の実行結果
train_test_splitメソッドでrandom_stateを指定しない場合_2

●3回目の実行結果
train_test_splitメソッドでrandom_stateを指定しない場合_3



「FlexClip」はテンプレートとして利用できる動画・画像・音楽などが充実した動画編集ツールだったテンプレートとして利用できるテキスト・動画・画像・音楽など(いずれも著作権フリー)が充実している動画編集ツールの一つに、「FlexCli...

また、scikit-learnのtrain_test_splitメソッドを用いて、訓練用データ・テストデータを分割した後に、回帰直線を算出しグラフ化した結果は、以下の通り。

train_test_splitメソッドでデータ分割後の回帰直線の算出

さらに、scikit-learnのtrain_test_splitメソッドを用いて、訓練用データ・テストデータを分割した後に回帰直線を算出し、テストデータからy座標を予測した結果と実際のデータを比較した結果は、以下の通り。

train_test_splitメソッドでデータ分割後の予測結果の算出



なお、作成された回帰直線が正しく機能するのは、訓練用データの範囲内(=内挿)の場合のみで、訓練用データの範囲外(=外挿)の場合は、正しく機能しないことがあるので、注意する必要がある。

詳細は、例えば以下のサイトを参照のこと。
https://atmarkit.itmedia.co.jp/ait/articles/2008/26/news017.html

要点まとめ

  • scikit-learnには、入力データを、訓練用データとテストデータに分割できるtrain_test_splitメソッドがある。