かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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!

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