What
Chainerを利用して機械学習を学ぶにあたり、私自身が、気がついた点、リサーチした内容をまとめる記事になります。今回は、scikit-learnを勉強します。
私の理解に基づいて記述しているため、間違っている場合があります。間違いは都度修正するつもりです、ご容赦ください。
Content
scikit-learn
このライブラリを使いこなすとモデルの訓練ができるようになるらしい。
米国ボストンの 506 の地域ごとの住環境の情報などと家賃の中央値の情報を収集して作られた Boston house prices dataset というデータセットを使用します。
使ってみます。
506サンプルのデータセットから物件価格の中央値を予想して実際の中央値と比べるようです。
###訓練用データとテスト用データの準備
今、Boston house prices datasetからデータを与えられている状況で、このデータを訓練用(=モデル最適化)に全て使ってしまうと、506サンプルのデータを最適化してしまい、実際にモデルに未知のデータを与えようとしたとき、全く実態と合っていないとなっては訓練した意味がないです。(過学習という)ですので、一部のデータはモデルの妥当性検証に用いると良いようです。無作為に訓練用、テスト用にデータを割り振ることをホールドアウト法という。
以下の関数一つで分割できる
# 訓練用データセットとテスト用データセットへの分割
x_train, x_test, t_train, t_test = train_test_split(x, t, test_size=0.3, random_state=0)
過学習を防ぐ方法は学術的な研究対象になっているらしい。
このライブラリではデータセットの平均値0分散1になるようにデータの前処理ができる
データの前処理から重回帰分析を行い決定関数で評価するまでの一連の流れは
パイプラインを使うと処理を統合できる
Comment
せっかく勉強するので、何か形にしたいなーと思っていた矢先
Deep racerという競技をしりました。AWSのDeep racerに出てみたいと思いました。