Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

複数系列モデリング

複数系列モデリングでは、入力特徴量の共通セットに基づいて、複数の時系列を含むデータセットのモデリングを行えます。これは、各行がどの系列に属するかを示すラベルの1つの列を含み、複数の時系列データベースで構成されると考えることのできるデータセットです。この列は、系列ID列と呼ばれます。

ヒント

DataRobotが複数の系列を検出した場合は、複数系列またはセグメント化されたモデリングを使用した複数系列のどちらが必要かを検討してください。セグメント化されたモデリングを選択した場合、DataRobotはセグメントごとにモデルの個別のセットを作成します(その後、セグメントごとに最適なモデルを自動的に組み合わせて単一のデプロイメントを作成します)。セグメント化されたモデリングを選択しない場合、DataRobotはデータセットからすべての系列を表す単一のモデルを作成します。

DataRobotでは、選択したプライマリー日付の特徴量が単一系列モデリングの条件を満たさない場合に複数系列モデリングの使用が自動的に推奨されます。たとえば、タイムスタンプが一意でない場合や、タイムスタンプの間隔が均等でない場合などに、この処理が行われます。系列ID特徴量に基づいて行をグループ化することによって、DataRobotで各グループを個別の時系列として処理できます。

チェーン店の複数の店舗の売り上げを示す次のサンプルでは、列store_idが複数系列モデリングの共通識別子として使用されます。

store_id、timestamp、target、input1、…1          2017-01-01,  1.23, AC,
1          2017-01-02,  1.21, AB,
1          2017-01-03,  1.21, BC,
1          2017-01-04,  1.23, B,
...
2          2017-01-03,  1.22, CBC,
2          2017-01-04,  1.23, AAB,
2          2017-01-05,  1.22, CA,
2          2017-01-06,  1.23, BAC,
...

複数系列モデリングに関するDataRobotのいくつかの機能:

  • 複数系列が必要な場合がDataRobotで自動的に検出され、以下に説明する複数系列モデリングのワークフローが提供されます。複数の系列が存在する場合、またはDataRobotで系列が検出されない場合があるので、系列IDを手動で割り当てることができます。

  • 連続値プロジェクトでは、複数系列プロジェクトのすべての系列にわたるターゲット値を集計し、集計列のラグおよび統計を自動的に生成できます。この機能は高度なオプション > 時系列で有効にします。

  • 時間経過に伴う特徴量および時系列の精度による視覚化では、データセット内の各系列のインサイトまたは複数の系列を1つのビューで見るインサイトが提供されます。

以下に示す複数系列モデリングを使用するサンプルのユースケースを参照してください。複数系列固有のサンプリングの説明も参照してください。

系列IDを設定する

時系列モデリングを使用する場合、DataRobotはヒューリスティックを実行して、データに同じタイムスタンプの行が複数存在するかどうかが検出されます。複数の系列が検出された場合、複数系列のワークフローが開始されます。

  1. DataRobotで識別された系列識別子をクリック(1)するか、既知の系列の有効な列名を手動で入力(2)して、系列識別子を選択します。

  2. 選択したら、一意のインスタンスの数を確認して系列IDを設定をクリックします。

    または、戻るを選択して、時間認識モデルタイプの選択に戻ります。

  3. 系列IDを変更する場合は、系列IDの鉛筆アイコンをクリックして系列IDの選択画面に戻ります。

    または、高度なオプション時系列タブから識別子を変更します。

  4. 系列IDが正しい場合:

モデル構築が完了したら、リーダーボードから使用できる時系列固有の視覚化機能でモデルを評価します。複数系列モデリングの場合、これらの機能は、データセット内または複数系列内の個々の系列に戻筑インサイトを単一ビューで提供します。

高度なオプションから系列IDを設定する

DataRobotでデータ内に複数の系列が検出されない場合、手動で系列IDを設定することができます。系列IDが有効な場合は、複数系列モデリングを使用できます。系列IDを手動で設定するには:

  1. 時系列モデリングを選択した後、高度なオプションを表示リンクを展開して、時系列タブを選択します。

  2. 複数の時系列を使用を促すセグメントで、系列IDを設定をクリックします。

  3. 有効な系列識別子を手動で入力します。

  4. 検定されたら後、時系列設定ステップに戻ってプロジェクトのセットアップを完了します。

系列IDの検定条件

系列IDに使用する特徴量は、以下の条件を満たす必要があります。

  • ターゲットまたはプライマリー日付/時刻の特徴量ではない
  • 特徴量の型は、数値、カテゴリ、またはテキストである必要があります。
  • 小数を含む複雑なfloat値は許可されていません。
  • 各系列グループ内のタイムスタンプが均等である
  • 各グループ内のタイムスタンプに規則的な時間ステップがある。

複数系列カレンダー

カレンダーファイルには、DataRobotで時系列特徴量を派生させるために使用するデータセットに関連するイベントのリストが含まれます。時系列の精度チャートでは、タイムラインと共にカレンダーイベントが視覚化されます。カーソルを上に置くとホバーヘルプが表示され、系列固有のイベントが識別されます。

複数系列プロジェクトの場合、カレンダーファイルの3番目の列はイベントが適用される系列を識別します。空白の場合はデータセットのすべての系列に適用されます。例えば、次のカレンダーファイルには、米国の休日がリストされています。いくつかの休日は特定の州に適用され、その他の休日はすべての州に適用されます。

date,holiday,state
2019-01-01,New Year's Day
2019-01-18,Lee-Jackson Day,Virginia
2019-01-21,Martin Luther King, Jr. Day
2019-02-18,Washington's Birthday
2019-03-17,Evacuation Day,Massachusetts
2019-03-18,Evacuation Day (Observed),Massachusetts
2019-05-27,Memorial Day
2019-07-04,Independence Day
2019-09-02,Labor Day
.
.
.

ID列(3番目の列)のエントリはデータセットの系列識別子列に一致する必要があります。データセットの系列IDを変更する場合、カレンダーファイルを再度アップロードする必要があります。カレンダーの条件の完全なリストについてはこちらを参照してください。

複数系列プロジェクトでのサンプリング

時系列はサンプリングを使用して、管理可能で最適化されたモデリングデータセットを確保します。ただし、複数系列プロジェクトでは、系列評価に十分なデータを確保するために、多少異なるアプローチが必要です。その結果、サンプルデータはモデリングとモデル評価に使用されますが、複数系列プロジェクトのインサイト(系列のインサイト時系列の精度、および予測と実績)はサンプリングされません。

下記を例に説明します。

  • 基本データセットは約420万行です。
  • 160の異なる系列があります。
  • 系列は非常に長い日付範囲をカバーしています。

OTVプロジェクトとして実行する場合、行の100%がモデリングプロセスで使用されます。時系列プロジェクトとして実行すると、データセットは約62倍の2億6000万行に増加します。この理由は、各系列が個別に扱われ、指定されたトレーニングウィンドウにすべての予測距離(予測ウィンドウ内)を含める必要があるためです。その結果、(予測距離に基づいて)次の数値が得られます。

予測距離 派生した行 使用される行 全体の%
OTV(FDはN/A) 4,184,841 4,184,841 100%
1-5 13,030,580 3,498,680 26.85%
1-10 26,061,160 3,493,940 13.41%
1-100 260,611,600 3,010,900 1.16%

最終的に、(サンプリングのが適用後)OTVプロジェクトと複数系列プロジェクトに使用されるデータの量はほとんど同じでした。つまり、複数系列はOTVの約70~80%の合計行で開始されましたが、派生プロセスによって多くの新しい列が追加され、サイズ制限がトリガーされました。

複数系列の場合、最終的には各系列のデータのサンプルが非常に少なくなる可能性があります。その割合のデータが各系列からランダムに選択され、ブループリントではモデルを構築する各系列のほんの一部だけが参照されます。対照的に、OTVは系列を区別しません。系列ID列は、モデルが学習するもう1つの機能です。その結果、OTVモデルは、各系列のすべてのデータから学習できます。

データセットとプロジェクトの設定が過剰なサンプリングレベルにつながる場合は、プロジェクトまたはモデリングアプローチを再設定してみてください。たとえば、非常に長い予測ウィンドウを小さなセグメントに分割し、セグメントごとにDataRobotプロジェクトを作成できます。さらに、データは複数系列プロジェクトで、多くの系列を持つデータセットの同様のクラスターにセグメント化できます。

あるいは、派生から除外することで、使用する列の数や、ラグ特徴量として役立つ可能性が低い列の数を減らすこともできます。最後に、トレーニングセットの長さを考慮してください。最古のデータを除外するためのトレーニングデータの期間を減らす場合、モデリング精度が向上し、データセットでのサンプリングが削減されます。

複数系列のユースケース

販売の予測と店舗の比較:

大手チェーン店が、在庫を正しく把握し、予測された在庫量に必要な人員を店舗に配置するために予測を作成することを検討している場合を考えてみます。店舗を管理するアナリストは、DataRobotを使用して、毎日の販売量を予測する時系列モデルを構築します。最初に、アナリストは時系列における販売の分布に注目してトレンドを把握します。データの量は膨大なので、モデル構築の前にデータが正しいことをレビューして確認するために、データ範囲スライダーを使用して、過去数週間のデータだけにズームインします。

ターゲットと時系列オプションを設定した後、「開始」をクリックして時系列特徴量を生成し、オートパイロットを実行します。将来の1~7日の予測ウィンドウでオートパイロットを実行した後、リーダーボードのパフォーマンスが最も優れたモデルの時系列の精度チャートを確認して、メインの検定セットでのモデルのパフォーマンスをチェックします(バックテスト1)。全体的なビューを確認して、系列識別子を切り替えて各店舗の情報を参照します。次に、最も最近の履歴をアップロードして、翌週の各系列の販売量を予測する予測を作成します。その後、予測をダウンロードして、翌週の正しい在庫量を把握するために使用します。


更新しました February 22, 2022
Back to top