時系列予測の基本ステップ(パート1)¶
この基本ステップでは、自動車の売上予測を例にDataRobotの時系列について紹介します。 このデータセットには、多くのメーカーや車種の月ごとの売上が含まれています。 このページでは、エクスペリメントの作成とモデルの構築をUIで行います。 この基本ステップの後半では、DataRobotのPythonクライアントによるコードファーストのアプローチを用います。 パート2では、同じタイプのエクスペリメントを作成しますが、Pythonのループを使って、より多くのモデリング作業をより速く実行します。
動画を視聴する
学習リソース
時系列予測については時系列リファレンスセクションを参照してださい。ワークベンチで時間認識モデリングのエクスペリメントを作成する方法については、NextGenのドキュメントを参照してください。
ダウンロードするアセット¶
以下の自動車売上関連のアセット(短いバージョンのデータ(FAST
)、より多くのセグメントを含む完全版(_Segments
)、Pythonノートブック(_Model_Factory.ipynb
))をダウンロードします。
1:ユースケースの作成¶
ワークベンチのディレクトリから、右上のユースケースを作成をクリックし、Car sales
という名前を付けます。
詳しくはこちら:ユースケースの操作
2: データのアップロード¶
データを追加 > アップロードをクリックして、_FAST
データセット(開始時にダウンロードしたアセットに含まれています)をローカルファイル経由でユースケースに追加します。
データセットがワークベンチに登録されている間、DataRobotはEDA1も実行します。つまり、すべての特徴量を分析およびプロファイリングして特徴量型を検出し、日付型特徴量の自動変換を行って、特徴量の品質を評価します。 登録が完了したら、EDA1の計算中に明らかになった情報を探索できます。
データセットの登録が完了したら、データセット名をクリックして探索します。 以下のことに留意してください。
特性 | サポート列 |
---|---|
この時系列データセットの時間ステップは月単位です。 | Date |
予測するターゲット値は月間販売台数です。 | Sales_Volume |
このデータセットでは、2つの主要セグメントに10の車種が含まれています。 | Model , Major_Segment |
さらに、5列のコンテキスト情報、平均価格と平均ディーラーインセンティブ、3つの経済指標があります。
詳しくはこちら: - データの操作 - 時系列ファイルのサイズ要件 - ワークベンチにおける探索的データインサイト
3:モデリングの基本設定¶
探索後、開始 > モデリングをクリックして、自動車売上データを使ったエクスペリメントを構築します。
データがモデリング用に処理されたら、一意の値や欠損値の数など、データの品質を簡単にチェックできる情報を確認します。
以下の内容を設定します。
モデリングを開始するまでは、設定を変更できます。 右側のエクスペリメントサマリーでこれまでの設定を確認します。
エクスペリメントの設定を続けるには、次へをクリックしてます。
詳しくはこちら:
4:時系列モデリングの設定¶
時間認識モデリングは、データを日付順に保持する必要がある場合に使用されます。 これはすべてのタイプの予測に当てはまります。また、時間外検定が使用される特定の分類および連続値問題にも当てはまります。 設定を続けるには:
-
時系列モデリングタブを選択し、時系列モデリングをオンに切り替えます。
-
順序付け特徴量と系列識別子を設定します。
この例では、順序付け特徴量は1つだけ(
Date
)です。 エクスペリメントでは、複数ある場合は手動で設定する必要があります。 また、系列識別子も正しく検出され、ドロップダウンリストから確認できます 別の識別子を選択することもできます。 -
下方向にスクロールして、ウィンドウの設定を行います。 以下の値を設定します。値を追加すると、右側の図が更新されます。 月単位の時間ステップが自動的に検出されます。
ウィンドウ設定 値 説明 特徴量派生ウィンドウの値 13(左)、1(右) DataRobotがモデリングデータセットの特徴量派生に使用するデータ期間を設定します。 この例では、予測ポイントの13か月〜1か月前のデータから特徴量が派生しています。 予測ウィンドウ 2(左)、3(右) 将来の予測の範囲(予測距離)を定義します。その範囲でモデルが最適化され、リーダーボードではその範囲での平均値でモデルがランク付けされます。 この例では、モデルは2か月先、3か月先、4か月先を予測します。 推奨されるモデルは、すべてのメーカーと車種、およびすべての予測距離において誤差を最小にするものです。 -
事前に既知の特徴量(時間の経過に伴って変化せず、予測時にわかっている特徴量)を設定します。 この例では、
Brand
とMajor_Segment
です。
備考
時系列モデリングをオンに切り替えると、日付/時刻パーティションが自動的に有効になり、データセットに基づいてバックテストの設定が行われます。 たとえば、異なるバックテスト設定が必要な場合、データパーティショニングタブから、これらのタスクを両方とも手動で行うことができます。 必要に応じて、このタブをクリックして確認します。
これですべての設定が完了しました(更新されたエクスペリメントサマリーを確認してください)。モデリングを開始をクリックして、モデルのトレーニングを開始します。 DataRobotによる自動化では、時系列特徴量が派生し、データに他の前処理が適用されて、テストするアルゴリズムが選択され、適切なモデルごとにテストが開始されます。
詳しくはこちら:
5:リーダーボードの探索¶
トレーニングが開始されると、構築中のモデルと完成したモデルがリーダーボードに表示されます。完成したモデルには精度スコアが示されます。 すべてのモデルのトレーニングを完了するのに必要な時間は、開始データのサイズと、アカウントで許可されている同時ジョブの数によって異なります。 ジョブキューを展開すると、エクスペリメントのステータスとキューに入っているモデルを確認できます。
モデルが完成したら、リーダーボードでそのモデルをクリックして探索を開始します。 後で簡単に見分けられるように(たとえば、計算を実行したモデルがわかるように)、モデルにスターを付けることができます。 この基本ステップでは、"Per Series Elastic Net Regressor with Forecast Distance Modeling"にスターを付けて選択します。
ブループリントをクリックすると、モデルを構築するための前処理ステップ、モデリングアルゴリズム、後処理ステップのパイプラインがグラフィカルに表示されます。 タスクをクリックすると、そのタスクのリファレンスドキュメントにアクセスできます。
特徴量のインパクトをクリックすると、モデルの決定を最も強力に推進している特徴量を識別できる、概要レベルの視覚化が表示されます。 指示されたら、クリックしてインサイトを計算します。 計算がキューに追加されます。 計算が完了したら、派生した特徴量タブをクリックします。
最初にトレーニングデータに対する予測をクリックして、時系列の精度を調べます。 バックテスト、系列、予測距離、時間単位を変更できます。 トレーニングデータを表示した場合と非表示にした場合の違いに注目してください。
これは複数系列のエクスペリメントなので、系列のインサイトを使用して系列固有の情報を表示できます。 精度スコアを計算して、最初の1000系列以降を確認します。ドロップダウン設定を試してみると、変更が表示の解釈に役立つため、インサイトについて理解を深めることができます。
詳しくはこちら:
6: エクスペリメント情報の表示¶
モデルトレーニング後の任意のタイミングで、エクスペリメント情報の表示をクリックして、派生データを含むサマリー情報の表示、特徴量セットの表示と作成、ブループリントリポジトリ(トレーニングする追加のブループリントにアクセスできます)へのアクセスを行います。 インサイトの計算が完了するまでの間、タブの操作を試すことができます。
最初に表示されるセットアップタブでは、エクスペリメントに関するサマリー情報が提供されます。
派生したモデリングデータタブをクリックすると、特徴量派生処理が適用された後のモデルトレーニングに使用されたデータが表示されます。 データセットの特徴量の数が、元のデータタブに表示されている10から107になっていることに注目してください。 派生ログのプレビューや、完全な変換記録のダウンロードもできます。
DataRobotでは、データの特性と設定されたウィンドウに基づいて、時系列特徴量(ラグ、平均/最大/中央値、ローリングなど)が自動的に作成されます。 たとえば、自動車売上のデータセットでは、平均インセンティブに基づいて、多くのラグ(およびその他の)特徴量が作成されました。
詳しくはこちら:時系列特徴量の派生
7:特徴量セットとブループリントの探索¶
データの時系列特徴量を作成すると、複数の特徴量セットが自動的に作成され、特徴量セットタブに表示されます。 自動作成された特徴量セットのうち最初に選択されるのは、やはりデータに最も適したものです。 たとえば、DataRobotでは差分を必要とするアルゴリズムと必要としないアルゴリズムが認識され、該当する特徴量を含む適切な特徴量セットが作成されます。 各セットに対してさまざまな操作を実行したり、独自の特徴量セットを作成したりできます。
カスタムセットを作成する場合は、特徴量を個別に選択するか、一括操作を使用します。その際、必ず順序付け特徴量を含めてください。 リストの名前、および必要に応じて説明を入力します。 この基本ステップでは、自動的に作成されたセットを使用します。
ブループリントリポジトリタブには、選択したエクスペリメントに使用でき、関連性のあるモデリングブループリントのライブラリが用意されています。 リポジトリからブループリントの検索、特徴量セットの変更、1つ以上のモデルのトレーニングを行うことができます。
詳しくはこちら:
8:計算されたインサイトの表示とスライス¶
リーダーボードのスター付きモデルに戻り、計算を実行したインサイトを表示します。
-
まず、特徴量のインパクトを展開し、元の特徴量と派生した特徴量両方の相対的な貢献度を表示します。
デフォルトでは、インサイトには、識別された両セグメントにおける10の自動車メーカーと車種すべての相対的な有用性が示されます。
-
データスライスを作成して、より詳細なビューにします。 インサイトの左下にあるデータスライスドロップダウンから、+ スライスを作成を選択します。 モーダルを次のように設定します。
フィールド 設定 スライス名 Pickup
特徴量をフィルター Major_Segment (actual)
オペレーター =
値 Pickup
スライスを保存するをクリックします。 データスライスドロップダウンから、スライス
Pickup
を選択します。設定されているモデルデータの部分母集団を使用してインサイトを再計算するよう求められます。 -
特徴量ごとの作用のインサイトを開いて、特徴量の値が変化した場合の影響を表示します。 インサイトは、他のすべての特徴量が変化せずに維持された状態で1つの特徴量の値の変化によってモデルの予測にどのような影響が生じるかを示す部分依存の観点から表示されます。
たとえば、商品価格指数が販売台数に与える影響を確認したり、月単位で売上を表示したりできます。
ソート条件を変更して影響の大きさで並べ替えると、最も車が売れないのは1月で、最も車が売れるのは8月と12月であることがわかります。
Pickup
データスライスで特定された特徴量だけを表示するように変更できますが、スライスを変更すると再計算が必要になります。 -
次に、時系列の精度まで下方向にスクロールします。 トレーニング期間 (濃淡のある青色) と検定期間 (濃淡のある緑色) では、予測値は青色、実測値はオレンジ色で表示されます。 コントロールを使用して、表示される系列の変更、バックテストまたは予測距離を選択します。 特定の期間を拡大するには、インサイトの下部にあるプレビューセレクターを使用します。
-
最後に、系列のインサイトを確認します。 このタブには、選択した系列、またはすべての系列に固有の情報のヒストグラムとテーブルが表示されます。
バックテスト列を確認します。ここには系列ごとの誤差が表示されます。 誤差が最も小さいのはトヨタのカムリで、最も大きいのはフォードのフォーカスであることがわかります。
誤差を実際の販売台数(ターゲット特徴量)と照らし合わせると便利です。 ターゲット平均列を並べ替えます。 販売台数が非常に多い車が、誤差が少ない車の中にあれば、適切な車種が見つかった可能性があります。 逆に、販売台数の多い車で誤差が大きい場合は、その車種を候補から外すことになります。
詳しくはこちら:
- 手順5のヒントを参照
- スライスされたデータ
- 特徴量ごとの作用
9:リーダーボードの再評価¶
この基本ステップの早い段階で調べられるよう、モデル構築が完了する前に、選択されたモデルで計算を実行しました。 ここで、リーダーボードに戻り、発生した並べ替えを確認します。 モデルの構築が終了すると、最も精度の高いモデル(アンサンブル以外の個々のモデル)が選択され、デプロイの準備が行われます。 そのモデルにはバッジが付けられ、特徴量のインパクトの計算が実行されます。
たとえば、他のユースケースやエクスペリメントで作業するためにリーダーボードを離れても、このエクスペリメントにいつでも戻ることができます。
詳しくはこちら:
次のステップ¶
UIでモデルを構築したら、基本ステップのパート2に進んで、DataRobotのPythonクライアントによるコードファーストのアプローチを利用できます。 あるいは、UIでその他の操作を試すには、以下のリソースを参照してください。
- 精度をテストするために予測を行う。
- モデルを登録し、最終的にデプロイする。