1. データの準備
前回と同じデータを利用します。
この時に前回の1を実行済みの前提となります。
Regression(回帰分析) 翌日の「平均気温」を入れ、regression.csvという名称で保存します。
前回同様先頭行に日本語の項目名がある場合は削除して下さい。
保存後に必ずエンコードをShift-JISからUTF-8に変更して下さい。
※今回はTeraPadで再度開き、文字コードを指定して保存で変換しました。
文字コード:UTF-8
改行コード:LF
2. S3に準備した3つのファイルのアップロード
マネージメントコンソールからS3を選択して、ファイルをアップします。
3. AMLに遷移し、データソースの追加を行います。
今回は一気にモデルの作成から評価まで出来る「Datasource and MLmodel」を選択します。
4. 入力データの選択
input dataの画面では先ほどアップロードしたS3のファイルを選択します。なお、この画面では自動的にバケット名やファイル名を取得してくれるので、先頭から数文字入れるだけで呼び出すことが出来ます。
Datasource Nameは任意ですが、あとで管理しやすいようにRegressionと入力しました。
Verifyが完了すると以下の画面が表示されるので、そのままContinueをクリックします。
5. データの確認
Schema画面では各項目のフォーマットのチェックをします。
特に最終行が”Numeric”になっていることを忘れずにチェックして下さい。
問題なければ「Continue」をクリックします。
6. ターゲットの選択
target画面では予測対象となるカラムの選択をします。
カラムを選択するだけで、自動的に方法が選択されます。今回はNumericデータを指定したため「Numeric Regression」が選択されました。
次にRow IDの選択がありますが、機械学習には影響しないとのことで特に選択しないで「Review」をクリックします。
7. Review
Review画面でチェックして特に問題なければ、そのまま「Finish」をクリックします。
8. 機械学習モデルの作成
そのままモデル作成の画面に遷移します。今回もDefaultにしております。
なおCustomを選んでも、データの評価が終わっていないのでRecipeには何も表示されません。
9. Review
Review画面でチェックして特に問題なければ、そのまま「Finish」をクリックします。
モデルの作成から評価まで行うので結構時間がかかりますので、気長にお待ちください。
モデルの作成が終わると、そのまま評価に進みます。
10. 評価の確認
無事実行が終わりました。
二項分類の場合AUC、多項分類の場合F1という評価でしたが、回帰分析の場合RMSEとなっております。
RMSEの場合、エラーが発生する頻度なので0に近い値ほど制度が高くなります。
11. 評価詳細の確認
0を中心に、どの程度バラけているかを確認することが出来ます。
気温なので数度違うと大きな違いですが、もっと細かく1℃や0.5℃など表を変えることが出来ます。
12. レシピの確認
レシピを見ると、前日の気温以外にも色々な項目を評価していることが確認できます。
レシピの変更により精度が上がるかを試してみます。
チューニング編
1. レシピの加工
非常にシンプルにしてみました。
平均気温、最高気温、最低気温、月日だけを対象にしてみます。
1{2 "groups": {3 "NUMERIC_VARS_QB_100": "group('Var02')",4 "NUMERIC_VARS_QB_200": "group('Var10','Var13')",5 "NUMERIC_VARS_QB_500": "group('Var09')"6 },7 "assignments": {},8 "outputs": [9 "ALL_CATEGORICAL",10 "quantile_bin(NUMERIC_VARS_QB_100,100)",11 "quantile_bin(NUMERIC_VARS_QB_200,200)",12 "quantile_bin(NUMERIC_VARS_QB_500,500)",13 "ALL_TEXT"14 ]15}| Var02 | 月日 |
| Var09 | 平均気温 |
| Var10 | 最高気温 |
| Var13 | 最低気温 |
2. モデル化&評価
再度同じように評価をしてみました。
先ほどと比べると若干ですが、数値が良くなっているようです。
3. 評価詳細の確認
詳細で見ても、中心の部分が若干高くなっており、より正解に近い値が増えているようです。
レシピと結果の比較
前回はどちらもDefaultのままで、元データを変えることによる変化を確認しました。
今回のケースでは、データは全く同じでもレシピを変えることによる変化を確認しています。
3回に渡って同じデータを利用して複数の機械学習での活用法について紹介しました。
次回はこの数値がどの程度のものなのかを検証してみたいと思います。
ナレコムクラウドでは機械学習を含めたAIやロボットといった事に興味があるエンジニアを募集しております。未経験の方でも興味がある方はお気軽に お問い合せ 下さい。
◯Amazon Machine Learning
第1回
Amazon Machine Learningを理解するために3つの方法で天気予測をしてみた(二項分類編)
第2回
Amazon Machine Learningを理解するために3つの方法で天気予測をしてみた(多項分類編)
第3回
Amazon Machine Learningを理解するために3つの方法で天気予測をしてみた(回帰分析編)
第4回
Amazon Machine Learningを理解するために3つの方法で天気予測をしてみた(答え合わせ編)
第5回