見出し画像

【宿泊者予測】完全無料で「自動機械学習(AutoML)」を使ってみた

こんにちは。

MatrixFlowの自動機械学習機能「AutoFlow」で「延べ宿泊者数」を予測しました。

AutoFlowは分類/回帰問題に利用できる多モデル並列学習機能で、探索試行回数に制限はあるものの、MatrixFlowに登録すると最初から使える無料機能です。(有料版では探索試行回数を増やすことができます。)

また、ハイパーパラメータを自動チューニングしてくれるので、最適なアルゴリズム・パラメータの組み合わせを網羅的に探索できます。

AutoFlowを利用すれば、高精度のモデル探索・モデル作成時間を大幅に削減できることが期待されます。

画像2

【タスク概要】

・この分析は2020年4月5日(日)現在のデータ及びMatrixFlowを使用した結果です。
統計ダッシュボード上で公開されている各種時系列データを用いて、5ヶ月後の延宿泊者数を予測します。
・延べ宿泊者数の定義はこちらです。
・各データは月次で差分(当月-前月)を取り、その差分(変化量)を学習します。
・予測する値は「5ヶ月後延べ宿泊者数(の月次変化量)」とします。
・下記「長期間ながら変数が少ない検証①[2007-2019]」と「短期間ながら変数を増やした検証②[2013-2019]」でモデルを作成し、比較します。

延べ宿泊者数の実測値は下図の通りです。
毎年6月に下がり7月に上昇し、そのまま8月にピークを迎え、1月に最も下がる季節性が伺えます。
そして毎年右肩上がりであることから「トレンド」も確認されます。
2008-2010年が顕著に低いのは、リーマンショックまたは政権交代の影響がありそうですね。

画像3

1. 検証①[2007-2019]

-2007年6月-2020年1月までの下記14変数
・(季節調整値)完全失業率(男女計)【%】
・(季節調整値)有効求人倍率【倍】
・(季節調整値)新規求人倍率【倍】
・新設住宅着工戸数(総戸数)【戸】
・消費者物価指数(総合)2015年基準
・延べ宿泊者数(総数)【人泊】
・企業倒産件数【件】
・機械受注額(船舶・電力を除く民需)【百万円】
・製造工業生産能力指数 2015年基準
・(季節調整値)鉱工業生産指数 2015年基準
・日経平均株価【円】
・国内企業物価指数(総平均)2015年基準
・輸出物価指数(総平均)(円ベース)2015年基準
・輸入物価指数(総平均)(円ベース)2015年基準

2.検証②[2013-2019]

-2013年6月-2020年1月までの、上記14+下記3計17変数
・サービス産業計(売上高)【百万円】
・正規の職員・従業員(男女計)【万人】
・非正規の職員・従業員(男女計)【万人】

※注意
時系列解析では多様な前処理や仮定の設定が必要になりますが、今回は上記の通り、簡単な問題設計とします。
また、因果等も考慮しないため「疑似相関(互いに影響していないが、その他変数から影響を受け、同じ傾向を持つ)」の観測となる可能性があることもご留意ください。

「データ管理」から取り込んだデータは、データ数や平均、標準偏差、最小値等のサマリーを見ることができます。

画像4

「前処理・データ解析」から各変数の分布(傾向)を確認できます。
ここで、欠損値の補完や削除も実行できます。

画像5

早速学習させたいと思います。
テストデータ比率は0.1に設定し、数値の予測なのでモデルは「回帰-AutoFlow-」を選択します。
「予測する値」と学習に使う値(訓練データ)を選択すれば準備完了です。

画像6

それでは、学習開始します。

画像7

……凄いです。
検証履歴に表示されている数字は検証されたモデルの数です。
私一人でこれだけの手法を試そうものなら、何時間かかることか……
学習データ及びテストデータの精度がグラフで表示され、学習の進み具合も直感的に把握できます。

【学習結果:検証①[2007-2019]】

・最高精度時のパラメータ
 -アルゴリズム: LightGBM回帰
 -ブースティングの種類: gbdt
 -葉数: 241
 -学習率: 0.013543680431599302
 -決定木の数 (n_estimators): 396
 -精度(R2): 0.7307

画像8

重要度はSHAP valueという指標で、各変数が加わることで「延べ宿泊者数」に与えられる影響の度合いを推定しています。
機械受注額、延べ宿泊者数を中心に全変数から学習していることが確認できます。
精度(R2)も0.73以上とそこそこ良いのではないでしょうか。

延べ宿泊者数の増減はともかく、機械受注額や新設住宅着工戸数の増減が5ヶ月後の延べ宿泊者数の増減に強く影響を与えている様は、背景を考えてもなかなか結びつきませんね。
機械受注額や住宅着工戸数が増える→売り上げが伸びる→企業の賞与が増える→旅行等宿泊の機会が増えるといったところでしょうか。

【学習結果:検証②[2013-2019]】

・最高精度時のパラメータ
 -アルゴリズム: LightGBM回帰
 -ブースティングの種類: gbdt
 -葉数: 987
 -学習率: 0.021429658333827945
 -決定木の数 (n_estimators): 302
 -精度(R2): 0.7056

画像9

精度は0.7以上ですが、検証①[2007-2019]と比較すると落ちていますね。また、一部変数の影響度は0となっており、変数を増やす代わりに短くなった期間分のデータ数が減った影響の方が大きいようです。
一方、追加した変数「サービス産業計(売上高)」「正規職員・従業員(男女計)」「非正規職員(男女計)」の重要度小さくなく、長期データが確保できるのであれば精度向上が期待できると考えます。

【推論結果比較】

変化量(月次差分)の正解データ、予測データをまとめた表は下記の通りです。

キャプチャ

画像11

グラフを見る限りは、両モデルとも控えめな予測になっています。
一方、値の精度で言えば検証①[2007-2019]の方が良さそうです。

また、精度(R2)が3程度小さかった検証②[2013-2019]は未学習データで2回、学習データでも1回符号自体が誤っており、誤差の大きさが伺えます。

上記正解データと比較した13ヶ月分の誤差(正解データ-検証データ)に絶対値を取り、和を求めた結果です。

キャプチャ

画像13

こちらも検証①[2007-2019]が3割程度小さくなり、今回は検証①[2007-2019]を採択すべきと判断されます。

【予測】

現在1月までのInputデータが公開されていたため、学習済みモデルで5ヶ月先=6月までの延べ宿泊者数を予測しました。
ただし、3月以降は前月の予測「延べ宿泊者数」に変化量を合算しているため、誤差の積算は大きくなり、遠い未来ほど精度は下がります。
2020年1月は43,156,910人です。

キャプチャ

画像15

……申し訳ございませんが、この両モデルの予測よりも下がると思います。。
平時にはある程度の時差を持って推移する影響があったとしても、急速かつ重大な外部要因の影響は全変数とも考慮されていないからです。

しかし、夏に向けて「増減を繰り返し」ながら「右肩上がり」の傾向が見えるので、冒頭で述べた「季節性」も「トレンド」も捉えている、本来なら良いモデルではないかと考えます。

また、検証①[2007-2019]はリーマンショック期(2008年頃)も学習しているためか、検証②[2013-2019]と比較すると控えめな予測となっています。

参考までに、下図は2007年6月-2008年8月を切り出した図になりますが、学習済み区間だけあって傾向をよくとらえていますね。

画像16

この学習モデルの用途としては「外部影響がない場合の収益・集客予測」の計算には使えるかもしれません。
モデルとしても、まだまだ改善の余地があります。
この予測値をベースに、外部要因の影響を考慮すれば、より精緻な推定が行えるのでは?と期待を胸に、締めさせていただきます。

AutoFlowは「精度の高さ」「モデル実装・学習の速さ」と驚異的なパフォーマンスを見せてくれました。Pythonがそこそこ書ける私でも1週間は作業時間を短縮できたと思います。
未経験の非エンジニアでも、データさえ準備すればデータサイエンティスト以上の予測精度を出すこともできるのではないでしょうか。
また「精度」「各変数の重要度」の視覚的なわかりやすさもMatrixFlowならではの魅力です。

ぜひ延べ宿泊者数の予測やAutoFlowのユーザビリティを「自分の手で」お試しください。

ありがとうございました~~。

【会社概要】
株式会社MatrixFlowは、「テクノロジーで世界をつくる」をミッションとするAIベンチャーです。大人から子供、ビジネスマンから学生、デザイナーからサイエンティストに至るまで、様々な人々がAIを活用し、素晴らしい着想を得たり、あっと言わせるクールな活動をすることを支援したいと考えています。その実現に向けた第一歩として、プログラミング不要のクラウド型AI構築プラットフォーム「MatrixFlow」を開発しております。また、様々な会社でのAI活用を推進するためにAIの受託開発・コンサルティング事業も行っております。
【会社情報】
設立 :2018年10月
本社 :東京都三鷹市
URL:https://www.matrixflow.net/
事業内容:プログラミング不要のAI構築プラットフォーム「MatrixFlow」の運営、および、AIの受託開発・コンサルティング
【お問い合わせ先】
E-mail:support@matrixflow.jp
窓口:MatrixFlowカスタマーサポート

この記事が気に入ったらサポートをしてみませんか?