Azure MLで天気予報してみよう(占いくらいの精度のやつ)
ということで、気象庁の過去データから 天気概況(昼:06時~18時)を15年分落としてみました。
やることは月と日を入力したらなんと天気を出してくれる…!まぁ日付と天気には、相関そんな無いしあ~した天気にな~れくらいの精度だと思います。
ここでの目的は、何個かのインプットに対して結果を分類分け(今回の場合天気)してくれるというものにチャレンジするというところです。とりあえずダウンロードしたデータを以下のように加工してAzure MLのデータセットにあげました。
天気予報という名前でEXPERIMENTSを作ります。そして、先ほどUPしたデータをぽとりと置いて、Project Columnsで必要なデータ(月、日、天気)に絞り込みます。
Splitで7:3にデータを分割します。先ほどは、数値のデータを予測するのでRegressionの中からアルゴリズムを選択しましたが、今回は分類するのでClassificationから選びます。Classificationの中には分類項目が2つに特化したTwo-Class *というアルゴリズムと、分類項目が複数のMulticlass **というアルゴリズムがあります。今回の天気の結果は2つじゃないのでMulticlassのほうを使います。
有名どころでMulticlass Logistic Regressionを選びました。(大学のころロジスティックという言葉聞いた覚えがある)これを、Train Modelを使ってトレーニングしてScore Modelで結果を照合してEvalute Modelで評価します。大体こんな感じ。
Train Modelが赤くなってるので結果の列である天気を選択してRUN!
Evalute Modelで評価結果をみるとズタボロです。
1に近いほどいいとされるaccuracy, precision, recallがすごいことになってます。クロス表もボロボロ…。
用意するデータって重要だというのがわかりますね。今回みたいに適当したらだめです。
Predictive Web ServicesでWebサービス化して、公開します。月、日が入力で予測結果が出力になるように微調整をかけてDEPLOY!
当たらない天気予報の出来上がりです。まぁ分類分けの練習ってことで…。