Amazon Machin Learningとは
学習には"教師あり学習"(Supervised Learning), "教師なし学習"(Unsupervised Learning)の2種類ありますが、Amazon Machine Leariningでは”教師あり学習"が可能です。つまり、過去の膨大な教師データを元に、未来の予測が可能です。
Amazon Machin Learningでは以下の3種類の学習が可能です
- 二項分類(Binary Classification)
- 0, 1の予測を行う。例えば、このお客様は商品を買うか、買わないかなど
- 多項分類(Multiclass Classification)
- A,B,Cのどれにあたるかといった、複数の分類の予測を行う
- 回帰分析(Regression)
- 具体的な値を予測します。 明日の気温は何度かなど。
Amazon自体は機械学習を過去から行っていたと思われるが、そのノウハウが入っている。例えば、過学習を防ぐなどのチューニングがされている模様(正規化処理)。
入力データ
今回は、機械学習のサンプルで良く使用される有名なIris Dataを使用致します。
三種類のあやめの品種のそれぞれからの 150の花の、センチメートル単位の蕚(がく)片の長さと幅、花弁の長さと幅の計測結果を与えています。
Amazon Machine Learningのデフォルトでは単純に上から70%が教師データ、下の30%が検証データになるので、シャッフルしておきます。
今回はデータ量も少ないので、以下のようにExcelで並べ替えします
まずColumnで以下のようにRAND関数で乱数を追加します
次に"Custom Sort"で乱数を元にソートします
これで入力データはランダムになりましたので、このデータをCSVファイルにコピーでもして下さい。
最後に重要な点なのですが、文字コードをUTF-8、 改行コードをLFに変更して下さい。
入力データ(DataSource)の登録
まずAWSのMachin Learningから入力データを読めるようにS3にCSVをアップロードします。
その後、Machine Learningのサービスを起動します。初めての人は"Get Start"の後にCustom SetupをLunchします。先ほどアップロードしたS3ファイルを指定します。
Machine LearningのサービスからS3のアクセス許可を求められるので許可します
その後に"Verify"でデータの確認をします。最後の列が"Categorical"になっていることを確認して下さい。そして左のチェックボックスをチェックして下さい。このCategoricalなデータをターゲット指定したということで、Val1,2,3,4のパラメーターからVal5を推定するといったモデルを作成することになります。
学習および学習結果の評価
先ほど登録した入力データ(DataSource)より学習を行います。Defaultでは上から70%を学習データ、下から30%を評価データになります。今回はこれで良いのでデフォルトの設定を用います。
学習した結果はモデルとして作成がされます。モデルは言わば学習データより帰納的にアルゴリズムが実装されたモジュールのようなものになります。
その後、コンソールのインタクラクションに従うと学習が始まるのですが、150個なのですぐできるかと思ったら、意外に時間がかかりました。(といっても数分ですが)
学習が完了時には、DataSourceには学習用データと、評価データが作成されています。
またモデルも作成されています
評価結果をクリックしていくと詳細な結果が見れます
今回の評価では、93%の正答率という結果が出ています
さいごに
以上、Amazon Machine Learningを使ってきましたが、とにかく非常に簡単に結果を得ることができます。次回は作成したモデルを使った簡単なWebアプリケーションの作成をしてみようと思います。