見出し画像

リリースノート3.7.4 Prophetカードの実装

7/17のアップデートにおいて、Node-AIでProphetカードが搭載され、新たにAIモデルとしてProphetを学習できるようになりました!

Prophetカードが選べるようになりました

時系列データ分析に馴染みがないと、Prophet という名前自体を知らないという方も多いかもしれません。そこで、Prophet がそもそもどんなモデルか、どのような場合に使えるかとともに、Node-AI での Prophet カードの実行方法についてご紹介していきます。

Prophetとは?

Prophet は 2017 年に Meta (旧 Facebook) 社が開発した時系列モデルです。

時系列分析で使われる数理モデルの中では自己回帰モデルと呼ばれるタイプのモデルで、目的変数の過去の値を使って予測を行います。自己回帰モデルの例としては他に ARIMA や SARIMA、SARIMAX などが存在します。

これまでNode-AIに搭載されてきたモデル(線形モデルやMLP、LightGBM)は、必ずしも時系列予測だけに使われるモデルではないため、時系列予測の用途で正しく活用するには、説明変数に入れるべき特徴量の考慮が必要になっていました。

一方で、自己回帰モデルは過去の値から未来の値を予測するという形式のため、予測したい値の列のみから成るようなシンプルなデータでも妥当な予測を行うことができます。

Prophetの使いどころは?

Prophetは、特に長期的なトレンド季節性を持つデータに対して有効です。

トレンドとは、長期的な上昇または下降の傾向のことです。普段株を購入している方にとっては、「75日移動平均線」や「200日移動平均線」などのテクニカル指標を使ったトレンド分析で馴染みが深いかもしれませんね。

季節性とは、特定の時間周期(日、週、月、年など)におけるパターンや繰り返しのことです。例えば売上データについて考えると、週末に売上が多くなる、夏に売上が多くなる、といった季節性が考えられます。


Node-AIにも公開データとして搭載されている「飛行機乗客数」データ(1949年から1960年までの1ヶ月ごとの飛行機乗客数を収録したデータ)は、トレンドや季節性を持つデータの良い例です。

飛行機乗客数データ(全体)

全体のグラフを見ると一目瞭然なように、乗客数全体が後半にかけて全体的に上昇しているというトレンドがあります。

飛行機乗客数データ(細部を拡大)

また、細部を拡大すると、7,8月頃に乗客数が比較的多く、11月頃に比較的少ないというパターンを繰り返していることも分かります。これは年単位の周期性、すなわち季節性の一種です。

Node-AIでProphetを学習させる

Prophetカードは、以下のようなツリーを組むことで、学習および評価が可能になっています。
(※ Prophetカードを使う場合は「時間窓切り出し」カードの処理が不要になっています)

Prophetの学習・評価の様子

Prophetカードの詳細画面においては、現在以下の3つの代表的なハイパーパラメータの調整が可能になっています。

  • changepoint_prior_scale (トレンドの柔軟性を調整するパラメータ)

  • seasonality_prior_scale (季節性の柔軟性を調整するパラメータ)

  • seasonality_mode (季節性のモード)

各パラメータの詳細な説明や推奨値の範囲については以下のマニュアルをご参照下さい。

Node-AIでは今後も、試せるモデルの種類をどんどん増やしていきたいと考えています!「こんなモデルがあればいいのに…」といった要望がありましたら、ぜひ問い合わせフォームからご連絡をお願いします!


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