機械学習を使った時系列予測の自動化

DataRobotのデータサイエンティストの中野 高文です。

 

時系列予測は過去のトレンドから、未来がどうなるかを予測する問題です。

ビジネスで時系列問題は頻繁に見られる問題です。商品の需要予測、店舗の訪問客予測、消費電力予測やコールセンターの呼量予測など製造・流通・インフラなど業界を問わず幅広く存在します。

 

しかし時系列予測では通常の機械学習と違った特有の難しさがあります。

1. 時系列の検定

時系列問題は過去のデータでモデリングをして未来のデータで予測を行うという順序が非常に重要です。そこで時系列モデリングの検定では、通常のランダムパーティションや層化抽出ではなく、時系列の順序が保たれたデータの分割が必要になります。

2. 時系列の特徴量エンジニアリング

売上を予測する時、1週間前の売上や過去1週間の平均売上などの過去のトレンドデータが予測に重要なシグナルです(例えば皆さんも日曜ゴルフの打ちっ放しに行くとき、先週の日曜同じ時間に行った時に空いていたか考えますよね)。このようなヒストリカル変数やラグ変数と呼ばれる特徴量の生成は時系列問題にユニークなもので、データサイエンティストの技術や知識が必要とされます。

3. 時系列に特化した技術

時系列問題では他の機械学習にない特別な技術やアルゴリズムがあります。例えば下のFig.1の時系列は非常に変化が激しく(専門的な言葉では非定常と言われます)このままではモデリングが難しいデータです。そこで今日と昨日の差を取ることでFig.2のような安定した時系列になり、モデリングが容易くなります。その他にも経時的に指数のトレンドを示すターゲットはlog変換するなど時系列に特有の技術が必要です。

Rplot

4. 時系列に特化したアルゴリズム

時系列の問題では統計学や計量経済学の理論体系で研究されてきたARIMAなど時系列に特有のアルゴリズムが使われます。一方で以前紹介したように、XGBoostやニューラルネットワークなどの機械学習のアルゴリズムも強力な手法として時系列問題で利用されています。数多くあるそれらのアルゴリズムを理解しそれぞれのデータに適切なものを選択するには、知識・時間の両方が要求されます。

 

DataRobotの時系列製品の特徴

2018年8月にDataRobotは時系列予測の難しい部分を自動化した、アドオン製品をリリースしました。この製品ではこれまで時系列分析で難しかった部分が自動化され、機械学習や時系列問題について全く知らない人でも、高精度な時系列モデルの生成が可能になりました。

1. 時系列検定の自動化
DataRobotの時系列モデリングでは過去のデータでモデリングして、その先の未来のデータで検定する順序性が保たれたデータの分割が行われます。また、時系列順序を維持したまま交差検定のように複数回検定を行うバックテストも行えます。このような検定をすることで、より未来を正確に予測できるモデルを作ることができます。

 

2. 時系列の特徴量エンジニアリングの自動化 

DataRobotでは、周期性(例:曜日により売上のパターンがある)などを判断し多数の特徴量(例:7日前の売上など)を自動で生成します。例えばあるデモデータでは元々18あった特徴量から2400近くの特徴量の候補をリストアップし、最終的にその中から優先度の高い274の特徴量が生成されました。

 

また正月などのイベント変数は重要な変数ですが、正月まで後何日あるかも売上に影響を及ぼします。DataRobotではカレンダーをアップロードするだけで予測のシグナルとなるイベント変数(例えば次のイベントまでの日数など)を自動生成します。

このような変数は未来を予測する上で非常に重要なシグナルです。DataRobotでは今まで属人化していたこのような技術が完全に自動化されています。

 

3. 時系列に特化した技術の自動化

上述したような安定しない時系列や指数的な変化を示す時系列では差のモデルやターゲットのlog変換などが必要か自動で判断します。そして必要な場合変換などを行なった上でモデリングが行われます。このような適切な変換を加えることで、トレンドをより正確に予測できるモデルが生成できます。

 

 4. 多様なアルゴリズム

XGBoostやリッジ回帰などの機械学習のアルゴリズムの他にも、昔ながらの統計的なアルゴリズムなどが実装されています。例えば以下のようなアリゴリズムでモデルが生成できます。

  1. ARIMA : 過去の値の自己相関などをモデリング。過去の目的変数以外に重要な要素がない場合に精度が良いモデルができやすい。
  2. Prophet : Facebookの開発したアルゴリズム。トレンドの変化点を検知したモデリングを行う。
  3. Eureqa : DataRobot社が買収したNutonian社のモデル。進化的アルゴリズムを用いてデータからプロセスを説明する複雑な数式を導きだす。

DataRobotではこれらの豊富なアルゴリムで自動でモデルを生成し、データに最も適切なものを利用することができます。

 

また、DataRobotの時系列モデリングでは複数の商品/店舗の売上を1つのモデルとして生成し、一度に予測する複数時系列のモデリングも行えます。これまでの時系列予測では予測モデルを商品の数だけ生成する必要があり、多くの商品の売上予測などを行う場合モデルの生成・管理が難しい状況でした。しかしDataRobotを使うことで数少ないモデルで全商品の需要予測を行うことができます。

 

このようにDataRobotの時系列アドオン製品では時系列モデリングでこれまで難しかった部分が全て自動化されています。

 

まとめ

データサイエンティストの数は不足していますが、より特殊な時系列の予測モデルを作れる人間はさらに少ないのが実情です。そこでデータサイエンスはわからないが、ビジネスやデータを理解している現場の担当者がモデルを作ってビジネスで活用して行く必要があります。

DataRobotの時系列アドオン製品でトップデータサイエンティストの知識・技術が自動化され誰でも高精度の時系列モデリングが使えるようになりました。そして需要予測などのビジネスに重要な問題を誰でも解決し、ビジネスで大きなリターンをあげていただくことができる可能性を持った製品となっています。

Screen Shot 2019-01-26 at 18.11.29