かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Azure MLで天気予報をしてみた #azurejp #jazug

Azure MLで天気予報してみよう(占いくらいの精度のやつ)

ということで、気象庁の過去データから 天気概況(昼:06時~18時)を15年分落としてみました。

www.data.jma.go.jp

やることは月と日を入力したらなんと天気を出してくれる…!まぁ日付と天気には、相関そんな無いしあ~した天気にな~れくらいの精度だと思います。

ここでの目的は、何個かのインプットに対して結果を分類分け(今回の場合天気)してくれるというものにチャレンジするというところです。とりあえずダウンロードしたデータを以下のように加工してAzure MLのデータセットにあげました。

f:id:okazuki:20151008213347p:plain

天気予報という名前でEXPERIMENTSを作ります。そして、先ほどUPしたデータをぽとりと置いて、Project Columnsで必要なデータ(月、日、天気)に絞り込みます。

f:id:okazuki:20151008213550p:plain

Splitで7:3にデータを分割します。先ほどは、数値のデータを予測するのでRegressionの中からアルゴリズムを選択しましたが、今回は分類するのでClassificationから選びます。Classificationの中には分類項目が2つに特化したTwo-Class *というアルゴリズムと、分類項目が複数のMulticlass **というアルゴリズムがあります。今回の天気の結果は2つじゃないのでMulticlassのほうを使います。

有名どころでMulticlass Logistic Regressionを選びました。(大学のころロジスティックという言葉聞いた覚えがある)これを、Train Modelを使ってトレーニングしてScore Modelで結果を照合してEvalute Modelで評価します。大体こんな感じ。

f:id:okazuki:20151008214028p:plain

Train Modelが赤くなってるので結果の列である天気を選択してRUN!

Evalute Modelで評価結果をみるとズタボロです。

f:id:okazuki:20151008214429p:plain

1に近いほどいいとされるaccuracy, precision, recallがすごいことになってます。クロス表もボロボロ…。

f:id:okazuki:20151008215029p:plain

用意するデータって重要だというのがわかりますね。今回みたいに適当したらだめです。

Predictive Web ServicesでWebサービス化して、公開します。月、日が入力で予測結果が出力になるように微調整をかけてDEPLOY!

当たらない天気予報の出来上がりです。まぁ分類分けの練習ってことで…。