Skip to content

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

日付/時刻パーティションの詳細オプション

DataRobotのデフォルトのパーティション設定は、選択した特定のデータセットとターゲット特徴量に合わせて最適化されています。 ほとんどのユーザーにとって、DataRobotが選択するデフォルト設定は最適化されたモデリングを提供します。 時系列 カスタマイズのドキュメントを参照すると、パーティションの計算方法を理解し、ウィンドウサイズの設定に関するアドバイスを得ることができます。

パーティショニングを変更することを選択した場合は、以下のコンテンツでバックテストパーティションの変更について説明します。

高度なオプション

高度なオプションを表示リンクを展開して、分割手法の詳細を設定します。 時間認識モデリングを有効にすると、高度なオプションではデフォルトで日付/時刻の分割手法が開きます。 日付/時刻の分割のバックテスティングセクションには、時間認識プロジェクトのバックテストを設定するツールがあります。

DataRobotは日付および/または時刻の形式を検出します(選択した機能に対する標準GLIBC文字列)。 これが正しいことを確認してください。 表示された形式がデータセットの日付列を正確に表していない場合は、検出された形式に一致するように元のデータセットを変更して、再アップロードしてください。

バックテストパーティションを設定。 高度なオプションは、ドロップダウンから設定(グローバル設定の適用)するか、可視化のバーをクリック(個々の設定の適用)することによって設定できます。 個々の設定はグローバル設定を上書きします。 個々のバックテストの設定を変更すると、編集したバックセットにはグローバル設定の変更は適用されません。

日付/日付範囲の表現

DataRobotでは、データ内の日付および日付範囲を表現するために日付ポイントが使用されます。以下の原則が適用されます。

  • すべての日付ポイントはISO 8601、UTC(「2016-05-12T12:15:02+00:00」など)に準拠します。これは、日付と時刻を表現するために国際的に受け入れられている方法です。期間形式には若干のバリエーションがあります。 具体的には、ISO週間(P5Wなど)のサポートはありません。

  • モデルは、2つのISO日付の間のデータでトレーニングされます。 これらの日付は、DataRobotで1つの日付範囲として表示されますが、含める日付の決定とすべての主要な境界は日付ポイントとして表現されます。 日付を指定すると、開始日が含まれ、終了日が除外されます。

  • 日付パーティショニング列を使用する形式を変更すると、プロジェクトのすべてのチャートやセレクターなどが、その形式に変換されます。

バックテストパーティションのグローバル設定

次の表にグローバル設定を示します。

選択項目 説明
1 バックテストの数 プロジェクトのバックテストの回数を設定します。バックテストは交差検定の時間認識版ですが、ランダム行ではなく、期間つまり継続時間に基づきます。
2 検定の長さ 検定用データ分割のサイズを設定します。
3 ギャップの長さ モデルトレーニングとモデルデプロイの間のギャップを表す時間のスペースを設定します。
4 サンプリング方法 分割の基準(期間または行)を指定し、ランダムデータと最新データのどちらを使用するかを指定します。

バックテストセクションの表示要素の詳細については、上の表を参照してください。

備考

分割の年/月/日の設定を変更すると、可能な場合は月と年の値は大きいクラスに合わせて調整される点に注意してください(たとえば、24か月は2年になります)。 しかし、DataRobotではデータに関連付けるときに閏年や月の閏日を考慮できないので、日を上位のコンテナに変換できません。

バックテストの数の設定

必要に応じて、バックテストの数を変更できます。 バックテストのデフォルトの数は、プロジェクトパラメーターに依存しますが、最大20まで設定できます。バックテストの数を設定する前に、ヒストグラムを使用して、各分割のトレーニングセットと検定セットにモデルのトレーニングに十分なデータがあることを確認します。 要件は以下のとおりです。

  • OTVの場合、バックテストでは、各検定およびホールドアウト分割に少なくとも20行が必要で、各トレーニング分割に少なくとも100行が必要です。 その条件を満たさない結果が生じるバックテストを設定した場合、DataRobotでは、最小限の条件を満たすバックテストだけが実行されます(該当するバックテストにはアスタリスクが表示されます)。

  • 時系列の場合、バックテストでは、検定およびホールドアウトに少なくとも4行が必要で、トレーニング分割に少なくとも20行が必要です。 多数のバックテストを設定しても、その条件を満たすパーティションがない場合、プロジェクトが失敗する可能性があります。 詳細については、 時系列パーティショニングのリファレンスを参照してください。

デフォルトでは、プロジェクト内のトレーニングモデルのホールドアウト分割が作成されます。 場合によっては、ホールドアウトセットなしでのプロジェクト作成が望ましいことがあります。 ホールドアウト分割を追加ボックスをオフにします。 ホールドアウト分割をオフにすると、ホールドアウトスコア列はリーダーボードに表示されません(また、ホールドアウトのロックを解除するオプションも表示されません)。 検定とホールドアウトを切り替えるオプションを提供するタブには、ホールドアウトオプションが表示されません。

備考

単一のバックセットのプロジェクトを構築する場合、リーダーボードにバックテスト列は表示されません。

検定の長さの設定

期間を変更するには(注意メッセージが表示された場合など)、検定の長さボックスのドロップダウン矢印をクリックして、期間の詳細を入力します。 検定の長さは、可視化のバーをクリックして設定することもできます。 テスト表示で修正がもたらす変化に注意してください。

ギャップ長の設定

(Optional) Set the gap length from the Gap Length dropdown. はじめはゼロに設定されており、テストでギャップは処理されません。 設定すると、モデルのトレーニングまたは評価に使用するギャップに相当するデータが拡張されます。 ギャップの長さは、可視化のバーをクリックして設定することもできます。

行または期間の設定

デフォルトでは、各バックテストの期間(デフォルト、またはドロップダウンか視覚化のバーで設定した値)は同じになります。 バックテストで同じ時間の長さではなく、同じ数のを使用する場合は、1つのバックテストと等しい行数トグルを使用します。

時系列プロジェクトのトレーニングウィンドウ形式セクションには、特徴量エンジニアリングの基盤として使用されるトレーニングデータの行または期間を設定するオプションがあります。

バックテストにデータを割り当てるためのメカニズム/モードを選択したら、サンプリング方法(ランダムまたは最新)を選択して、データセットから行を割り当てる方法を選択します。

サンプリング方法の設定は、データセットが時間の経過とともに均等に分散されない場合に特に役立ちます。 たとえば、データが最新の日付に偏っている場合、ランダム行50%と最新の行50%の結果はまったく異なります。 データをより正確に選択することで、DataRobotがトレーニングするデータをより細かく制御できます。

バックテストパーティションの変更

設定を変更しない場合、DataRobotは行をバックテストに均等に分散します。 視覚化で該当するバーまたは鉛筆アイコン()をクリックして、個々のバックテストのギャップ、トレーニング、検定、およびホールドアウトデータをカスタマイズすることもできます。 以下の点に注意してください。

  • 設定できるのはホールドアウトバックテスト(「バックテスト0」)のホールドアウトだけで、そのバックテストのトレーニングデータサイズを変更することはできません。

  • 最初のパーティショニング検出中に、順序付け(日付/時刻)特徴量、系列ID、またはターゲットのバックテスト設定には、検定とホールドアウトの両方をカバーするのに十分な行がない場合、DataRobotは自動的にホールドアウトを無効化します。 他のパーティショニング設定(検定やギャップ期間、開始/終了日など)が変更された場合、手動で無効にしない限り、ホールドアウトは影響を受けません。

  • 1つのバックテストと等しい行数を選択(パーティションが行ベースの割り当てに設定されます)した場合、適用できるのは「トレーニング終了日」だけです。

  • 1つのバックテストと等しい行数をオンにすると、表示される日付は情報提供の目的のみ(近似)になり、特徴量の派生および予測ポイントウィンドウで設定されたパディングが含まれます。

個々のバックテストの編集

設定する対象(トレーニング、ギャップ、検定、またはホールドアウト)に関係なく、編集画面の要素の機能は同じです。 データ要素の上にカーソルを置くと、特定の期間情報をレポートするツールヒントが表示されます。

セクション(1)をクリックして開始および終了日を変更するツールが開きます。ボックス(2)をクリックするとカレンダーピッカーが開きます。

三角形マーカーは対応する境界を示します。 大きい青い三角形()は、アクティブな境界を示します。この境界は、カレンダーピッカーで新しい日付を適用すると変更されます。 小さいオレンジの三角形()は、現在選択されていない変更可能なその他の境界ポイントを示します。

トレーニング、検定、およびギャップ(設定されている場合)の現在の期間は、日付入力ボックスの下に表示されます。

データ要素を変更すると、バックテストに編集済みラベルが追加されます。

期間を手動で元の設定に戻した場合を含め、バックテストから編集済みラベルを削除することはできません。 すべてのバックテストにグローバルな期間設定を適用するには、プロジェクトをコピーして再起動します。

トレーニングおよび検定の変更

個々のバックテストのトレーニングまたは検定データの期間を変更するには:

  1. バックテストをクリックしてカレンダーピッカーツールを開きます。
  2. 変更する要素の三角形をクリックします。オプションは、トレーニング開始(デフォルト)、トレーニング終了/検定開始または検定終了です。
  3. 必要に応じて日付を変更します。

ギャップを変更する

ギャップはトレーニングセットの終わりと検定セットの最初の間の期間で、モデルのトレーニングにおいて意図的に無視されるデータです。 ギャップの長さは、グローバルに設定するか、個々のバックテストに対して設定することができます。

ギャップを設定するには、トレーニング終了と検定開始の間の時間を追加します。 この操作は、トレーニングの終了時間を早くする、検定の開始時間を遅らせる、またはその両方を行うことによって行うことができます。

  1. トレーニング期間の最後にある三角形をクリックします。

  2. ギャップを追加リンクをクリックします。

    追加の三角形マーカーが追加されます。 これらのマーカーは隣り合って表示されますが、選択された(青い)三角形と非アクティブな(オレンジの)三角形は両方とも同じ日付を表します。 それぞれ選択できるように2つのマーカーの間には少しスペースがあります。

  3. (Optional) Set the Training End Date using the calendar picker. 設定した日付がギャップ期間の最初になります(トレーニング終了 = ギャップ開始)。

  4. オレンジの検定開始日マーカーをクリックすると、マーカーが青に変わり、現在選択されていることが示されます。

  5. (Optional) Set the Validation Start Date (validation start = gap end).

ギャップは黄色の帯で表されます。帯の上にカーソルを置くと期間が表示されます。

ホールドアウト期間の変更

ホールドアウトの長さを変更するには、ホールドアウトパーティションのバックテスト0の赤い領域(ホールドアウト領域)をクリックします。 表示されるホールドアウト開始日の日付をクリックしてカレンダーピッカーを開き、新しい日付を設定します。 ホールドアウトパーティションを変更した際に新しいサイズで問題が発生する可能性がある場合、ホールドアウト分割の横に注意アイコンが表示されます。 注意アイコン()をクリックしてドロップダウンを展開し、期間/日付フィールドをリセットします。

期間のロック

選択した要素の期間を変更せずにバックテストの日付を変更する必要がある場合があります。 トレーニング、検定、またはその両方の組み合わせの期間をロックできます。 期間をロックするには、目的の期間の一方の端の三角形をクリックします。 次に、Shiftキーを押したまま、ロックされた期間のもう一方の端にある三角形を選択します。 各要素のカレンダーピッカーが開きます。

いずれかのエントリで日付を変更します。 もう一方の日付が更新され、行った期間の変更が反映されます。

表示を解釈する

日付/時刻のパーティションの表示には、トレーニングおよび検定データのパーティションに加えて、それらのサイズ/期間が示されます。 新しい可視化機能を使用すると、モデルを対象領域で確実に検定できます。 チャートには、各バックテストのトレーニング、検定、および(該当する場合)ホールドアウトとギャップデータの値の特定の期間が表示されます。 具体的には、各バックテストでモデルが目的の期間または関連する期間を表すかどうかを観察できます。スコアが目的の期間を表すかどうか。 スコアが役に立つようなものになるような十分なデータがバックテストにあるかどうか。

表示に含まれる要素を次の表に示します。

要素 説明
観測値 ダウンサンプリング前のデータセット全体における値(頻度)のビニング分布。 これは、特徴量のヒストグラムに表示されるものと同じ情報です。
利用可能なトレーニングデータ 青いバーは指定した分割で使用できるトレーニングデータを示します。 これは、使用可能なすべてのデータから検定データまたはホールドアウトデータを除外したものです。
プライマリートレーニングデータ 点線は、すべてのバックテスト分割からスコアを取得するためにトレーニングできるデータの最大量を示します。 トレーニングに使用する任意の時間ウィンドウを後で選択できますが、選択内容によっては、すべてのバックテストスコアを取得できないことがあります。 (これは、プライマリートレーニングウィンドウよりも大きいデータでトレーニングを行った場合などに発生します。 ) プライマリトレーニングデータの値に等しいか、それよりも小さいデータでトレーニングを行った場合、すべてのバックテストスコアを取得できます。 この値よりも大きいデータでトレーニングを行った場合、DataRobotで実行されるテストの数は少なくなり、バックテストスコアにはアスタリスク(*)が表示されます。
ギャップ トレーニングセットの終わりと検定セットの最初の間のギャップで、モデルのトレーニングにおいて内部で無視されるデータです。
検証 緑のバーで示されるデータのセットで、トレーニングに使用されます(DataRobotでは各バックテストにおいて異なるセクションが選択されます)。 これは従来の検定と同様ですが、時間ベースである点が異なります。 検定セットはプライマリートレーニングデータの終わり(またはギャップの終わり)の直後から始まります。
ホールドアウト(ホールドアウト分割を追加が選択されている場合のみ) 予約済み(非表示)部分のデータで、モデルのトレーニングと検定が終了した後、モデル品質の最終テストとして使用されます。 日付/時刻の分割では、ホールドアウトは、トレーニングデータのランダムなサブセットではなく、期間または行ベースの部分です。 デフォルトでは、ホールドアウトデータのサイズは検定データのサイズと同じで、ホールドアウトデータには常に最新のデータが含まれます。 (しかし、ホールドアウトのサイズはユーザーが設定することができます。
バックテストx トレーニングモデルに使用する時間ベースまたは行ベースの分割。 ホールドアウトバックテストは「バックテスト0」と呼ばれ、可視化でHoldoutとラベル化されます。 小さいデータセットの場合、およびオートパイロットからの最高のスコアリングモデルの場合、すべてのバックテストが実行されます。 大きいデータセットの場合は、モデル構築には、リストの最初のバックテストが使用されます。 このスコアは、リーダーボードの「検定」列に表示されます。 その後のバックテストは、リーダーボードで手動で開始しないと実行されません。

さらに、表示には時間経過に伴うターゲットおよび観測値のヒストグラムが含まれます。 これらの表示を使用して、モデルの比較、測定、および評価を行う時間範囲を可視化して「対象領域」を識別します。たとえば、表示は、時間経過に伴うデータの密度を特定する場合やデータにギャップがあるかどうかを判断する場合に役立ちます。

表示では、緑はDataRobotがモデルを検定しているデータの選択範囲を表します。 「全てのバックテスト」スコアは、この領域の平均です。 グラデーションは各バックテストおよびトレーニングデータとの潜在的なオーバーラップを表します。

時間経過に伴うターゲットグラフを調査して、データ変動がある領域を見つけます。 これらの領域のモデルを比較することをお勧めします。 観測値チャートを使用して、特定のバックテストに含まれるデータの量が適切かどうかを判断します。

最後に、赤いロックされたホールドアウトセクションをクリックして、データ内でホールドアウトスコアが測定されている場所を確認し、それがデータセットの一貫した表現であるかどうかをチェックできます。

バックテストを理解する

バックテストは概念的に交差検定と同様で、既存の過去のデータを使用して予測モデルをテストできます。 つまり、過去に基づいてモデルの将来のパフォーマンス予測を評価することができます。 しかし、交差検定とは異なり、バックテストでは、データセットからランダムな行を選択するのではなく、特定の時間枠や期間を選択してテストに使用し、ランダムなサンプルではなく、データの「トライアル」を作成できます。 したがって、「それぞれ1000のランダム行を含む5つのセグメントにデータを分割」するのではなく、「1000行のトレーニングをシミュレーションしての10行を予測します。5回繰り返す」ことができます。バックテストでは、トレーニングデータの古い期間でモデルのトレーニングがシミュレートされた後、検定データの新しい期間でパフォーマンスが測定されます。 モデルが構築された後、リーダーボードからトレーニングの設定を変更して、期間とサンプル率を変更できます。 次に、DataRobotは、シフトされたトレーニングデータでモデルを再トレーニングします。

プロジェクトの目標が将来の予測を行うものである場合、バックテストでは、(時間ベースの問題に関して)モデルパフォーマンスを交差検定よりも深く理解できます。 時系列の問題においては、予測の信頼度が向上します。 バックテストでは、すべての分割にわたって1つのモデルのパフォーマンスが一貫して他のモデルよりも優れていることを確認することによってモデルの堅牢性を保証できます。

DataRobotのデフォルトのバックテストの数はプロジェクトのパラメーターに依存しますが、モデルの精度を向上させるために最大20のバックテストを含めるようにビルドを設定できます。 追加のバックテストを設定すると、モデルのトライアルの数が多くなるので、予測の精度の信頼性が向上します。 期間と日付を注意深く設定して、「10件の2ヶ月予測」などを生成できます。特定の期間を避けて設定した後、「予測は類似しているか」 または2つの類似した月で「エラーは同じか」を確認できます。

データのギャップが大きい場合、バックテストが困難になります。 観測値データのない長い期間がデータセットに含まれる場合、該当するギャップがバックテストのどの部分に該当するのかを確認することをお勧めします。 たとえば、検定ウィンドウに含まれるデータポイントが少なすぎる場合、長いデータ検定ウィンドウを選択すると、検定スコアの信頼性が向上します。 バックテストの数を多くすると、モデルパフォーマンスの測定の信頼性が向上し、初期バックテスト分割のトレーニングウィンドウの最大数も減少します。

ギャップを理解する

ギャップを設定すると、モデルのトレーニングとモデルデプロイの間に通常みられる時間のギャップ(トレーニングにデータが使用されていない期間)を再現できます。 これは、以下のような場合に便利です。

  • トレーニングに古いデータしか使用できない場合(グラウンドトゥルースの収集が困難な場合)。
  • モデルの検定とその後のデプロイに数週間や数ヶ月などの長い時間がかかる場合。
  • レビューやアクションの目的で予測を事前に提供する場合。

シンプルな例としては、保険の支払い請求が増大するのに約1年かかることがあります(支払い請求から支払い決定までの間の時間)。 この理由から、保険会社では、2015年のデータでトレーニングされたモデルに基づいて、2017年のポリシーの支払い価格が決定されます。 このプロセスを再現するために、トレーニングセットと検定セットの間に1年間のギャップを挿入できます。 これでモデルの評価の正確性が向上します。 別の例としては、価格設定に規制上の承認が必要な場合、季節ごとの小売りの場合、およびまだ入手できないレポートに価格推定が依存する場合などがあります。


更新しました February 6, 2024