SPSS Modeler ヒモトク

身近な疑問をヒモトク#09-新規感染者数予測のような時系列データ予測を最速で実現する!

記事をシェアする:

はじめまして。IBMの藤岡です。

IBM Cloud Pak for Data(CP4D)を通じてデータサイエンスの機能をお客様に提供する支援をしています。

「身近な疑問をヒモトク」いうことで、執筆のお話をいただいたとき私の中で題材は1択でした。今もっとも身近な予測といえば新型コロナウイルス感染症の新規感染者数予測です。しかし、感染者数予測で原稿を準備していたら、「専門家が扱うべき内容なのにけしからん」と社内から指摘を受け、泣く泣く交通渋滞予測に車線変更しました。

記事のタイトルに含まれる「のような」という表現は、同じ方法でもそれができるというせめてものメッセージです。この記事では「最速で」身近な時系列予測が実現できる点をご理解いただければと考えています。

 

私の経験になりますが、ここ数年データサイエンス領域でお客さまのニーズで最も多いのが「時系列データによる将来予測」です。

過去の値から将来の出荷量や在庫、売上を予測したい方はもちろん、すでに取り組んでみたものの予測が不十分で業務適用できない方も多くいらっしゃいました。その悩みを抱える方はいわゆる現場のご担当者で、データそのものには詳しい一方で、アルゴリズムには不案内の方が多い印象でした。

つまりこういったケースでは小難しいこと抜きに自分でも簡単に時間をかけずに将来予測ができるAIがひとつの解決策になるのだということです。加えて、本格的に取り組む重要な第一段階になればよく、当面の間、あまりお金はかけたくない。

 

それにピッタリなのがAutoAIです。

 

AutoAIは、CP4Dに含まれる機能でAI機械学習のノーコード開発が可能です。具体的には過去の時系列データを入力するだけで「いい感じ」で将来を予測します。このブログの読者でしたら、よくご存知のSPSS Modelerとの比較をしながら読み進めてみて下さい。

ちなみにCP4DにはSPSS Modelerの機能もあるのですが、今回は触れずAutoAIにフォーカスします。

 

 

改めて身近な疑問の設定

 

今年も夏が終わりかかっていますが、夏の風物詩といえばお盆時期の帰省ラッシュがあります。今年は行動制限がなく、交通渋滞がひどくなるという予測がありましたが、メディアやリアルタイムの渋滞情報を見ていた限りでは、思ったほどでもなかった気がします。それはさておき、交通量の過去履歴データをもとにして、将来の交通量を予測する例でご紹介しようと思います。(元データはこちらからダウンロードできます)

 

さらに、目的を明確にしましょう。月曜から金曜の午前8時の交通量に絞り、通勤時間帯の渋滞を予測することにします。

そうやってこの元データを眺めてみると、いくつかの問題点があることがわかります。まず前処理として、以下のようにデータを整形します。そこまでデータが大きくないのでExcelを駆使すればできますが、CP4DのWatson StudioでPython言語で書いたり、同じくCP4Dに含まれるSPSS Modelerを使ったりしてもよいでしょう。

 

  • 1時間ごとの値のうち、月曜から金曜の8時の値のみに絞る。また、祝日を示す行が0時のみになっているため、8時の行に入れて、祝日かどうかだけを0か1のフラグ変数にする。
  • 2012/10から2018/9までの期間のデータであるが、2014/8から2015/6までのまとまった期間が欠損している。予測モデルをトレーニングするには季節変動を加味しても数年分があればよいので、2015/6以前の分は破棄する。
  • 気温が華氏(F)になっているので、摂氏(℃)に変換する。(これは好みですが)
  • AutoAIの時系列データでは数値以外は無視されるので、天気の文字列を表す列は除外する。

 

その結果、データはこんな形になりました。さらに、期間でトレーニング用とテスト用(精度評価用)に分けておきます。ここでは2015/6~2018/7をトレーニング用、2018/8~2018/9をテスト用としました。

 

図1:トレーニング用の加工済みデータ

 

列名を見ていただければ想像がつきますが念のため、以下のようなデータになっています。

 

  • date 日付
  • traffic_volume  交通量
  • is_holiday  祝日かどうか(1=祝日、0=平日)
  • temp_c  気温(摂氏)
  • rain_1h  降水量
  • snow_1h  降雪量
  • clouds_all  雲量

 

交通量は祝日のようなカレンダーイベントや、気象条件によって影響を受ける可能性があります。また、他の影響因子も考えられるかもしれません。この影響因子のことをAutoAIでは「Supporting Features」と呼んでおり、後ほど登場してきます。

 

AutoAIでの予測モデル作成

 

これでデータの準備ができたので、AutoAIで予測モデルをトレーニングしていきます。まず準備として、こちらの手順に従ってCP4Dが使える状態にしてください。AutoAIを使うためには、Watson StudioおよびWatson Machine Learningのサービスが必要になりますので、あわせてサービスカタログから登録してください。

 

CP4Dではそれぞれのサービスに無償利用枠(ライトプラン)があります。ライトプランでは2022/9現在、AutoAIが消費するWatson Machine Learningでは毎月20CUHを使うことができます。一方、AutoAIの基本設定では8vCPU、32GBメモリーの構成で、1時間あたり20CUHを消費します。例えば今回のデータでトレーニングした場合、1回につき5分程度で終わりますので、毎月約10回分を無償で使うことができます。

 

CP4Dが使える状態になったら、こちらの手順の4までに従って新規プロジェクトを作成し、作っておいた加工済みデータ(CSV形式)をアップロードします。次に、こちらの手順の2-9までに従ってAutoAIを追加していきますが、その後の操作は記載が異なるので、こちらのデモ動画をご覧ください。

 

 

動画では次の操作を行い、AutoAIが予測モデルを生成しています。

 

  • データを可視化し、交通量や気温の推移をグラフ表示してみる。
  • AutoAIのモデル作成における各設定を指定する。このとき、Supporting Featuresを有効にしている。45ステップ先(45日先)までの予測を行うモデルとする。
  • AutoAIは特徴量変換、トレーニングアルゴリズムの試行と選択、ハイパーパラメータの調整、最良の精度であったモデル(パイプライン)を3つ生成、までを自動で行う。
  • 得られた3つのモデルのうち、最良の精度のものを使って、45日先までの交通量の予測を行う。

 

図2:モデルをバックテスト(トレーニング期間を予測して実績と比較)している様子

 

ここまで、手操作としては数分、AutoAIの自動モデル作成に5分程度かかりましたが、全体で合わせて10分以下でした。最速かどうかはご判断を委ねますが、いかがでしたか?

 

 予測の評価とまとめ

 

最後に未来予測の結果を評価してみます。

分離しておいたテストデータにある実際の値と、AutoAIが予測した値を比較してみましょう。

 

 

概ね当たっているように見えます(平均誤差=6.8%)が、2018/8/23だけは大きく外していますね。改めてデータを見直してみると、この日は祝日なので予測モデルは交通量が少ないと予測していますが実際には少なくありませんでした。ということは何らかの別の影響因子があったのだと考えられます。そこから逆算してSupporting Featuresに追加できるデータがないかといったようにデータの見直しをしながら、モデルの改善サイクルに入っていくことができるでしょう。

また、データを考察していくなかで見落としがちなのが、将来予測をするときに未来のSupporting Featuresが前もってわかるかどうかです。カレンダーイベントは計画された予定ですので予測時に与えられますし、気象条件も天気予報である程度は与えられますが、事故・事件のような偶発的なもの、為替レートや株価のような予測困難なものを含むことは避けるべきでしょう。

 

 

次回の身近な疑問をヒモトクはIBMの河村さんによる「秒速で掘り起こす!テキストマイニングはデータが多いほど実効性が高い」です。また並行連載中の「ブログで学ぶSPSS Modeler」は同じくIBMの斉藤さんが「異常検知の自動化!CADSの設定を動画でご紹介」を執筆。お楽しみに。

 

Auto AIの詳細についてはこちら

SPSS Modelerの詳細についてはこちら

これまでのSPSS Modeler ブログ連載のバックナンバーはこちらから

 

 

 

藤岡 英典

日本アイ・ビー・エム株式会社

テクノロジー事業本部 データ・AI・オートメーション事業部
Data & AI テクニカルセールス

 

 

 

 

More SPSS Modeler ヒモトク stories

データ分析者達の教訓 #19- ちゃぶ台返しを受けないため「最初に」現場と握っておく

Data Science and AI, SPSS Modeler ヒモトク, アナリティクス...

皆さんこんにちはIBM の斉藤です。IBM Data&AIでデータサイエンスTech Salesをしています。 このリレー連載ブログはSPSS Modelerの実際のユーザーで第一線で活躍するデータ分析者に、デー ...続きを読む


データ分析者達の教訓 #18- データの向こうにある社会的背景や因果関係を洞察せよ

Data Science and AI, SPSS Modeler ヒモトク, アナリティクス...

こんにちは。IBM Data&AIでデータサイエンスTech Salesをしている西牧です。 このリレー連載ブログはSPSS Modelerの実際のユーザーで第一線で活躍するデータ分析者に、データ活用を進める上で ...続きを読む


データ分析者達の教訓 #17- データ分析はチーム戦。個々がミス最小化の責任を持つ

Data Science and AI, SPSS Modeler ヒモトク, アナリティクス...

皆さんこんにちは。山下研一です。IBM Data&AIでデータサイエンスTech Salesをしています。 このリレー連載ブログはSPSS Modelerの実際のユーザーで第一線で活躍するデータ分析者に、データ活 ...続きを読む