🚅

Azure ML を使ってドクターイエローの運行予測をしてみる

に公開

はじめに

長らく放置していたドクターイエロー運行予測ですが、データが蓄積されてきたため、いよいよ Azure ML を利用して予測を実施することにしました。

全体像は次のとおりです。

実行手順

時系列データの取得

元となる時系列データは Azure SQL Database から取得します。データの内容は ドクターイエロー とつぶやかれた件数が日付ごとに格納されています。

予測データの作成

予測モデルには ETS + STL を使用します。他にも ARIMA などがありますが、ドクターイエローは 10 日に 1 回程度運行すると言われているため、予測結果としてはこちらのほうが適していると考えました。なお、この分野にはあまり詳しくないため、サンプルを参考にしながら R 言語でスクリプトを作成しました。

実際に作成したスクリプトは次のとおりです。今回は月別を想定し、frequency を 30 に設定しています。

library(forecast)

dataset <- maml.mapInputPort(1)
colnames(dataset) <- c("date", "count")

series <- ts(dataset$count, frequency = 30)
fit <- stl(series, s.window = "periodic")
model <- forecast(fit, h = 30, method = "ets")

tommorow <- Sys.Date() + 1
dates <- seq(tommorow, len = 30, by = "days")
dates <- format(dates, '%Y/%m/%d')

dataset.forecast <- data.frame(date = dates, mean = model$mean)

plot(dataset.forecast)

maml.mapOutputPort("dataset.forecast")

実行結果

実際に実行した結果は次のとおりです。

グラフはなぜか点グラフになってしまいました。pilot 関数に type="l" を指定してもうまくいかない理由は分かりませんでした。

おわりに

データ分析は不慣れなところがあるのでまだまだ勉強が必要そうです。

Discussion