渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

scikit-learnを使って等値演算を機械学習させる


前回記事からの続きです。
最低限の機械学習の知識を手に入れるため勉強中。

本書の4章に突入し、やっとタイトル通りの機械学習内容に入ってまいりました。

機械学習の第一弾として、等値演算を学習させてみます。
※本書ではXOR演算学習が紹介されています


等値演算とは、AとBの2つの値が同じであれば真、異なれば偽であるという、プログラム的には日常的によく使う演算です。


今回やること

  1. 学習用データを用意する
  2. 学習用データで学習させる
  3. テストデータで学習の度合いを確認する

事前準備

Python向け機械学習の定番フレームワークscikit-learn(サイキットラーン)を使うため、以下のコマンドでインストールします。

pip install -U scikit-learn scipy matplotlib scikit-image


SVMというアルゴリズムを利用して機械学習をさせます。

先にサンプルコードを御覧ください。

ポイントをかいつまんで見ていきます。

1.学習用データを用意する、2.学習用データで学習させる

学習用データを用意して、データとラベルで分けます(23行目辺り)。
34行目のSVMオブジェクトのfit関数で学習させるわけですが、その関数仕様(第1引数にデータ、第2引数にラベル)に合わせるためです。

3.テストデータで学習の度合いを確認する

38行目でテストデータ(test_data)を定義し、先と同様にデータとラベルに分けます。
58行目のpredict関数で予測されたデータを受取り、学習度合いを確認します。

ちなみに今回の正解率は、正解率: 6 / 7 = 0.8571428571428571でした。

学習データがまだまだ足りないようです。

最後に

本書でやっと本題の機械学習の内容になりました。面白いです。

参考