Azure Machine Learning のTime Series Forecasting解説

Azure Machine Learning

機械学習をさくっと使える無料のツールです。

  • 内部のアルゴリズムを理解していなくても使える
  • プログラムを書かなくても大丈夫

ということが売りで、素人でも簡単に使用することが可能です。

サンプルコード(というかMaxのパッチみたいなの)が結構あるので、使い方は簡単にわかるんじゃないかなと思います。

Time Series Forecastingのサンプルコード解説

Azure Machine LearningのいいところはRやPythonのコードを埋め込めること。 Time Series Forecastingでは時系列データの予測を行うためのサンプルが記載されています。 内部ではRのスクリプトが埋め込まれています。

全体像 f:id:l94q:20150924123028p:plain

データの入力

最初の3つのノードは入力データの加工をしています。 f:id:l94q:20150924123046p:plain

  • "Time Series dataset"・・・データの入力
  • "Metadata Editor" ・・・データの列名を変更
  • "Split"・・・データをtime≦108とそれ以外で分割。予測の精度を確認するために、109≦time≦126を予測部として、あとで誤差の確認に使用する

モデルの学習と予測

このサンプルでは4つのモデルで学習、予測しています。 使用しているモデルは 1. ARIMA with seasonal 2. ARIMA with non-seasonal 3. ETS with seasonal 4. ETS with non-seasonal

f:id:l94q:20150924123100p:plain

中央のノードはARIMA with seasonalとETS with seasonalの予測結果の平均値とを出力しています。 実際の学習、予測はRスクリプト内で行われてます。R便利すぎてヤバイですね。

予測結果の確認

予測した数値の精度を確認します。

f:id:l94q:20150924123122p:plain

"join"ノードで、予測部含めた入力データに予測した値の列を結合しています。 そして、Rスクリプトで予測値と実測値の精度を計算しています。精度は以下を出力。

ME (Mean Error) ・・・平均誤差

RMSE (Root Mean Square Error)・・・平均2乗誤差

MAE (Mean Average Error)・・・平均絶対誤差

MASE (Mean Absolute Square Error)・・・平均絶対2乗誤差

MPE (Mean Percentage Error)・・・平均誤差比率

MAPE (Mean Absolute Percentage Error)・・・平均絶対誤差比率

sMAPE (symmetric Mean Percentage Error)・・・調整絶対誤差比率

各モデルの比較

各モデルの予測精度誤差をまとめたのが一番下の"Add Rows"ノード。ここの出力を見ると各モデルの予測結果を比較できる。

f:id:l94q:20150924123238p:plain

この例だとARIMA with seasonalが一番精度良さ気ですかね。

所感

モデルの精度は置いといて、簡単に予測をするプログラムが作れちゃうのが凄いなーと思うところ。元々RもPython機械学習をするフレームワークとしては難しくないんだけど、それをさらに簡単にしてるのがAzure Machine Learning。(Amazon Machine Learningは触ったことないけど多分同じような感じだと思う。) サクッと分析したい時なんかに使うといいかなと思ってます。 もう少しこみいった分析をするには自分でコード書いたほうがいいですかね。