話題の記事

【新サービス】Amazon Machine Learningを試してみた #AWSSummit #AmazonML

2015.04.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2015年04月09日未明(日本時間午前1時頃)に行われた『AWS Summits 2015 San Francisco』のKeynote(基調講演)にて発表された機械学習サービス『Amazon Machine Learning』

ちなみにこちらは速報記事的に書き上げた『サービスが出た!』エントリとなります。

セッション内での『今から使えます!』という発表があった様に、このサービス、早速利用可能となっています。という訳で早速『試してみた』エントリとしてどんな感じで使えるのかをご紹介してみたいと思います。

目次

参考情報

サービス発表と併せて、公式ブログ等で以下の情報が展開されていました。日本語情報も早速公式で公開されているようです。

Amazon Machine Learning:実践

0.データの準備

実践は以下ドキュメントを元に進めてみたいと思います。

まずはデータの入手。上記サイトからbanking.csvbanking-batch.csvのリンクが展開されていましたので、そのURLからダウンロード。(元ネタは以下から入手出来るようです)

S3バケットへアップロードし、フォルダも別途用意しました。

aws-ml-02

1.入力データの作成

サービスへのアクセスは以下URLから遷移可能です。[Get Started]を押下。

aws-ml-11

なお、現時点で利用可能なリージョンは『N.Virginia(US East)』のみの模様です。

aws-ml-01

Standard Setupから、[Launch]を選択。

aws-ml-12

先程UpしたCSVファイルを指定、データソース名もサンプルに倣って命名してみます。[Verify]押下。

aws-ml-13

S3へのパーミッション付与を求められます。ここは[Yes]を押下。

aws-ml-14

検証が完了しました。[Continue]を押下。

aws-ml-15

2.スキーマ情報の設定、確認

ファイルの内容を元にスキーマ情報を設定する作業を行います。ここでは『Does the first line in your CSV contain the column names?』の選択肢で[Yes]を押下すると、ファイルヘッダー(1行目)から項目名を取ってきてここで設定してくれる様です。これは嬉しい機能ですね。

aws-ml-16

一覧配下の[Continue]を押下。

aws-ml-17

3.ターゲットの設定, ROW IDの設定

対象となるターゲットの設定を行います。ここではサンプルドキュメントで指定されているyという項目(末尾の項目)を指定。[Continue]を押下。

aws-ml-18

ROW IDの設定はここではデフォルト指定(行わない設定)で進めます。[Review]押下。

aws-ml-19

4.内容の確認

ここまでの内容をレビューする事が出来ます。[Finish]押下。

aws-ml-20

データソース作成の準備が整った様です。ステータスは[Pending]のまま。

aws-ml-21

一覧にはこんな感じで表示されています。

aws-ml-22

5.機械学習モデルの作成

メニューから[ML models]を指定。

aws-ml-31

[Create a new ML model]を選択。

aws-ml-32

先程作成したデータを入力データとして指定します。

aws-ml-33

指定したら[Continue]を押下。

aws-ml-34

[Review]押下でレビュー画面に進みます。

aws-ml-35

内容を確認し、画面下部の[Finish]を押下。

aws-ml-36

この時点ではモデルのステータスは[Pending]の状態となっています。

aws-ml-37

6.機械学習モデル予測パフォーマンスのレビューとCut-Off設定

上記作成時点でのステータスが[In Progress]を経て[Completed]となったタイミングで、ここの作業が行える様になります。

aws-ml-41

モデルページ内の[Evaluations]→[Summary]で、評価内容の確認を行う事が出来ます。

aws-ml-42

7.スコア閾値の設定

上記画面から、[Adjust score threshold]を押下。

aws-ml-43

すると、各種閾値を変更する事が出来ます。値を決めたら[Save score threshold]を押下。

aws-ml-44

8.モデルを使ってバッチ予測を作成

さぁ、いよいよ手順も終盤です。メニューから[Batch Predictions]を選択。

aws-ml-51

[Create new batch prediction]を押下。

aws-ml-52

前述手順同様、入力データを選択して[Continue]を押下。

aws-ml-53

入力データの設定を行います。[Verify]押下。S3権限設定も併せて進めます。

aws-ml-54

aws-ml-55

aws-ml-56

出力結果の出力先を指定します。S3権限設定も併せて進めます。

aws-ml-57

aws-ml-58

最終レビュー内容。確認後[Finish]を押下。

aws-ml-59

処理が始まりました!

aws-ml-60

9.実行結果の確認

ステータスが[Completed]になると処理完了です。

aws-ml-61

ログファイルの内容を確認してみます。

Message-ID: <Thu Apr 09 21:41:05 UTC 2015_318507007885-bp-bp-4XFZ4hneCdW/userlog/318507007885-bp-bp-4XFZ4hneCdW>
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_62_1776984957.1428615665260"

------=_Part_62_1776984957.1428615665260
Amazon Machine Learning


------=_Part_62_1776984957.1428615665260
15/04/09 21:39:04 INFO: BATCH_PREDICTION bp-bp-4XFZ4hneCdW started
15/04/09 21:39:04 INFO: Processing file s3://cm-machine-learning/banking-batch.csv ...
15/04/09 21:39:07 INFO: Number of records processed without error : 4119
15/04/09 21:39:07 INFO: Number of bad records : 0
15/04/09 21:39:07 INFO: BATCH_PREDICTION bp-bp-4XFZ4hneCdW completed.


------=_Part_62_1776984957.1428615665260--

出力先フォルダを確認してみます。ちゃんと出てますね!(そして一番最初の事前フォルダ作成、生成されている構造を見る限り、どうやら要らんかった様ですね...)

aws-ml-62

中身はこんな感じになってました。

bestAnswer,score
0,8.163745E-2
0,1.695196E-2
0,2.596637E-2
0,2.294753E-3
0,2.005484E-3
0,6.64944E-2
0,3.645399E-1
0,1.934818E-3
0,2.392365E-3
0,4.87664E-3
0,5.568253E-2
0,1.189729E-2
0,2.27879E-3
0,8.918162E-3
0,4.207113E-1
0,3.181654E-1
0,2.33681E-2
0,1.622703E-3
0,1.941351E-3

終わった後はリソースの後片付けも忘れずに!

aws-ml-63

まとめ

以上、新サービスのAmazon Machine Learningを試してみたエントリでした。機械学習そのものの内容については良く分かってませんでしたが(笑)、比較的スムーズに作業を進める事が出来ました。データ入力元にRedshiftも使えるようですし、公式ドキュメントも内容が色々整備されていそうですのでこの他にも色々試してみたいと思います。こちらからは以上です。