Skip to content

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

時間外検定 (OTV)

時間外検定(OTV)は、時間に関連するデータをモデリングする手法です。 OTVでは、時系列のような予測は行われません。 その代わりに、個々の各行のターゲット値を予測します。

時系列モデリングと同様に、OTVモデリングの基盤の構造は日付/時刻のパーティショニングです。 実際、OTV、洗練された前処理や時系列の精度グラフからのインサイトなどの追加要素を含む日付/時刻のパーティショニングです。

時間認識モデリングをアクティブにするには、パーティショニングを行うための「日付」特徴量の型を含む列がデータセットに必要です。 この列が含まれる場合、日付/時刻パーティション特徴量は、開始画面の時間認識モデルを設定リンクから使用できます。 時間特徴量を選択した後、高度なオプションリンクを使用してモデル構築の詳細な設定を行うことができます。

このセクションでは、基本的な日付/時刻のパーティショニングワークフローについて説明します。

OTVおよび時系列モデリングに関するこれらの追加の日付/時刻分割に関する考慮事項を参照してください。

基本的なワークフロー

時間認識モデルを構築するには:

  1. データセットをロード(ファイルサイズ要件を参照してください)し、ターゲット特徴量を選択します。 データセットに日付特徴量が含まれる場合、時間認識モデルを設定リンクがアクティブになります。 開始するには、リンクをクリックしてください。

  2. ドロップダウンからプライマリー日付/時刻特徴量を選択します。 ドロップダウンには、EDA1で検出されたすべての日付/時刻特徴量がリストされます。

  3. 特徴量を選択すると、ターゲット特徴量に対してプロットされた時間特徴量のヒストグラム(時系列の特徴量)が計算されて読み込まれます。 データセットが複数系列のモデリング条件を満たす場合、このヒストグラムは、ターゲット特徴量に対してプロットされたすべての系列にわたる時間特徴量値の平均を表します。

  4. 他の特徴量が時間の経過と共にどのようになるかを参照してトレンドを確認し、データにギャップがあるかどうかを判断します(これが知る必要のあるデータの不備です)。 これらのヒストグラムにアクセスするには、数値特徴量を展開し、時間経過タブをクリックして、時間の経過とともに特徴量を計算するをクリックします。

    時間経過チャートとは、いくつかの方法で対応できます。詳細については、以下を参照してください。

最後に、時間認識モデリングのタイプをAutomated Machine Learningに設定し、 詳細オプションでデフォルト設定を変更するかどうかを検討します。 時系列モデリングが有効になっていて、OTV以外の方法を使用する場合は、 時系列ワークフローを参照してください。

高度なオプション

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

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行が必要です。 多数のバックテストを設定しても、その条件を満たすパーティションがない場合、プロジェクトが失敗する可能性があります。 詳細については、 時系列パーティショニングのリファレンスを参照してください。

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

備考

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

検定の長さの設定

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

ギャップ長の設定

(オプション)ギャップの長さをギャップの長さドロップダウンから設定します。 はじめはゼロに設定されており、テストでギャップは処理されません。 設定すると、モデルのトレーニングまたは評価に使用するギャップに相当するデータが拡張されます。 ギャップの長さは、可視化のバーをクリックして設定することもできます。

行または期間の設定

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ギャップを変更する

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

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

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

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

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

  3. (オプション)カレンダーピッカーを使用してトレーニング終了日を設定します。 設定した日付がギャップ期間の最初になります(トレーニング終了 = ギャップ開始)。

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

  5. (オプション)検定開始日(検定開始 = ギャップ終了)を設定します。

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

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

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

期間のロック

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

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

表示を解釈する

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

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

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

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

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

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

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

時間認識モデルの構築

開始をクリックすると、モデル構築プロセスが開始し、リーダーボードに結果が返されます。 時系列モデリングでは日付/時刻のパーティショニングが使用されるので、バックテストの実行、ウィンドウサンプリングの変更、トレーニング期間の変更などをリーダーボードから行うことができます。

備考

モデルパラメーターの選択は、日付/時刻パラメータープロジェクトに対してカスタマイズされていません。 ほとんどの場合はパラメーターの自動選択によって良好な結果が得られますが、日付/時刻のパーティションを使用するいくつかのプロジェクトで高度なチューニングを行うとパフォーマンスが著しく向上することがあります。

日付期間特徴量

モデリングに元の日付があるとリスクが高いため(過剰適合や適切に補完されない木型モデルなど)、DataRobotは通常、日付変換特徴量が派生されていない場合は有用な特徴量セットから除外します。 代わりに、OTVプロジェクトでは、DataRobotは日付特徴量とプライマリー日付の差から計算された期間特徴量を作成します。 その後、最適化された有用な特徴量セットに期間特徴量が追加されます。 自動化プロセスは以下の項目を作成します。

  • 新しい期間特徴量
  • 新しい特徴量セット

新しい期間特徴量

派生した特徴量(時刻、曜日など)が作成された場合、新しく派生した特徴量の特徴量タイプは日付ではありません。 代わりに、カテゴリー、数値などになります。 モデルがより適切に時間距離を学習するようにするため、DataRobotは、プライマリーと非プライマリー日付間の期間を計算し、その計算を特徴量として追加し、すべての非プライマリー日付を削除します。

具体的には、OTVプロジェクトで日付派生が発生すると、DataRobotは日付間の期間から計算された1つ以上の特徴量を作成します。 新しい特徴量の名前はduration(<from date>, <to date>)で、<from date>はプライマリー日付です。 データページに表示された特徴量の型はDate Durationを示します。

時間単位が異なる場合でも、変換は適用されます。 その場合、DataRobotは秒単位で時間を計算し、データページに情報(場合によっては大きな整数)を表示します。 <to date>はプライマリー日付以前の場合があるため、値が負になることもあります。

新しい特徴量セット

有用な特徴量と元の特徴量に基づいて自動的に作成された新しい特徴量セットは、期間特徴量を追加した元の特徴量コピーです。 それらは同じ名前ですが、「時間対応モデリングに最適化」が追加されます。 (有用性上位の特徴量セットの場合、元の日付特徴量が有用性上位の特徴量セットに含まれている場合にのみduration特徴量が追加されます。)

フルオートパイロットまたはクイックオートパイロットを実行すると、後ほどEDA2プロセスで新しい特徴量セットが作成されます。 DataRobotは、オートパイロットプロセスを切り替えて、新しい最適化されたリストを使用します。 最適化されていないセットの1つを使用するには、希望のリストを指定するオートパイロットを再実行する必要があります。

リーダーボード上の日付/時刻モデル

開始をクリックすると、モデル構築プロセスが開始し、リーダーボードに結果が返されます。

備考

モデルパラメーターの選択は、日付/時刻パラメータープロジェクトに対してカスタマイズされていません。 ほとんどの場合はパラメーターの自動選択によって良好な結果が得られますが、日付/時刻のパーティションを使用するいくつかのプロジェクトで高度なチューニングを行うとパフォーマンスが著しく向上することがあります。

リーダーボードのほとんどの要素は同じですが、DataRobotにおける推奨モデルの計算および割り当ては、以下に示すように異なります。 また、日付/時刻でパーティション分割されたモデルのサンプルサイズの表示形式も異なります。 特徴量セットとサンプルサイズの下にあるデフォルトの表示リストでは、特定のモデルの構築に使用されたデータセットの割合ではなく、サンプリング方法(ランダム/最新)および次のいずれかが表示されます。

  • 開始日/終了日(手動で追加、または推奨モデルに自動的に割り当て):

  • モデルの構築に使用する期間:

  • 行数:

  • プロジェクト設定ラベル(カスタムバックテスト構成を示します):

特徴量セットとサンプルサイズから利用可能なドロップダウンを使用して、時間ウィンドウのサンプルパーセント、サンプリング方法、および特徴量セットでリーダーボード表示をフィルタリングできます。 これを使用して、単一のオートパイロットステージでモデルなどを簡単に選択できます。

日付/時刻のパーティションを使用すると、オートパイロットでは、使用するデータの量は最適化されません。 長さの異なるトレーニングウィンドウでは、より多くのデータを含めること(長いモデルトレーニング期間、または最新のデータにフォーカスすること(短いトレーニング期間)によってパフォーマンスが向上することがあります。 短いトレーニング期間または長いトレーニング期間を使用することによって、モデルパフォーマンスが向上することがあります。 トレーニング期間は、リーダーボードのモデルを追加オプションでカスタマイズできます。

パーティション依存におけるもう1つの違いは、検定スコアの生成方法です。 日付のパーティショニングでは、最初のバックテスト(ホールドアウトテストのすぐ下に表示される部分)だけを使用してモデルが構築され、スコアがリーダーボードに表示されます。 行数または期間モデルのホールドアウトスコア(有効な場合)を計算する場合、最初のバックテストでのトレーニングが行われ、パラメーターが固定されてホールドアウトモデルがトレーニングされます。 この方法では、複数のモデルの関係性は同じになります(バックテスト1トレーニングの終わりからバックテスト検定の最初は、ホールドアウトトレーニングデータの終わりからホールドアウトの最初までの期間に等しくなります)。

ただし、バックテストのスコアは選択したサンプリング方法によって異なります。 DataRobotでスコアリングできるのは、限られた数のモデルのすべてのバックテストだけです(他のモデルは手動で実行する必要があります)。 自動的に実行されるバックテストは、以下に基づいています。

  • ランダムでは、DataRobotは利用可能な最大サンプルサイズで常に最良のブループリントをバックテストします。 たとえば、 BP0 on P1Y @ 50%が最高のスコアで、BP0をP1Y@25%P1Y@50%P1Y(100%モデル)でトレーニングしていた場合、DataRobotはP1YでトレーニングされたBP0のすべてのバックテストをスコアリングします。

  • 最新では、DataRobotはバックテストに最適なモデルの正確なトレーニング設定を保持します。 この場合、BP0 on P1Y @ 50%のすべてのバックテストがスコアリングされます。

検定セットのスコアリングに使用するモデルがリーダーボードに表示されているトレーニングサイズよりも小さいデータでトレーニングされた場合、スコアにはアスタリスクが表示されます。 これは、トレーニングサイズが完全なサイズからホールドアウトを除外したサイズに等しい場合に発生します。

交差検定と同様に、他の設定済みバックテスト用に個別のビルドを開始する必要があります(最初にバックテストの数を1より大きい値に設定した場合)。 リーダーボードからモデルの実行リンクをクリックするか、「リーダーボード」メニューから選択したモデルのすべてのバックテストを実行を使用します。 (このオプションを使用して一度に1つまたは複数のモデルのバックテストを実行できます。)

全てのバックテスト列に表示される結果のスコアは、すべてのバックテストの平均スコアを表します。 バックテストスコアリングの詳細については、モデル情報の説明を参照してください。

トレーニング期間の変更

備考

最終デプロイの前に最新のデータでのモデルの再トレーニングを行うことが推奨されます。

トレーニング範囲およびサンプル率を変更し、日付パーティショニングビルドの特定のモデルを返すことができます。 モデルを構築した後に検定パーティションの期間を変更することはできないことに注意してください。この設定は、構築を開始する前にのみ高度なオプションリンクから使用できます。 プラス記号(+)をクリックして、新しいトレーニング期間ダイアログを開きます。

新しいトレーニング期間ボックスには、次の表で説明する複数のセレクターがあります。

選択項目 説明
1 フローズン実行トグル 実行を固定
2 トレーニングモード 別のトレーニング期間を使用してモデルを再実行する。 値の設定をする前に、行数とそれに対する期間、及びそれらがデータ群にどのように適用されるのかの詳細を参照してください。
3 切り替え先 事前定義済みのポイントに「スナップ」して値の入力を行い、手動でのスクロールや計算を回避できます。
4 時間ウィンドウサンプリングを有効化 期間または開始/終了トレーニングモードで、時間ウィンドウ内のデータのサブセットをトレーニングします。 選択して有効にし、割合を指定します。
5 サンプリング方法 データセットから行を割り当てるサンプリング方法を選択します。
6 サマリーグラフ図 モデルの構築に使用された観測値およびテストパーティションのサマリーを表示します。
7 最終モデル 日付を調整すると変化するイメージを表示し、予測を行うモデルで使用するデータを反映させます(以下の備考を参照)。

新しい値を設定した後、新しいトレーニング期間で実行をクリックします。 新しいモデルが構築され、リーダーボードに表示されます。

期間の設定

モデルで使用するトレーニング期間を変更するには、ダイアログの期間タブを選択して、新しい期間を設定します。 期間は、検定の最初(左側)から測定されます。 期間オプションでは、時間ウィンドウサンプリングを有効にすることもできます。

観測値範囲外の期間に対してはエラーが返されます。 また、使用可能な単位は時間の形式に依存します(たとえば、形式が%d-%m-%Yの場合、時間、分、および秒は使用できません)。

行数の設定

モデルの構築に使用される行数は、サンプルサイズとしてリーダーボードにレポートされます。 このサイズを変更するには、ダイアログの行数タブをクリックして新しい値を入力します。

開始日と終了日を設定する

トグルをクリックしてフローズン実行を有効にした場合、元のモデル実行で確立されたパラメーター設定が新しく指定したサンプルで再使用されます。 フローズン実行を有効にすると、3番目のトレーニング条件(開始/終了日)のロックが解除されます。 この選択を使用して、モデルの構築に使用するデータを手動で指定します。 この設定を使用すると、ホールドアウトのロックを解除した後、ホールドアウトデータでモデルをトレーニングできます。 (デュレーションおよび行数のセレクターでは、ホールドアウトでトレーニングすることはできません。) ホールドアウトがロックされている場合に、この設定をオーバーラップするとモデルの構築が失敗します。 開始日と終了日のオプションでは、時間ウィンドウサンプリングを有効にすることもできます。

開始日と終了日を設定する際は、以下の点に注意してください。

  • 一部のデータがモデルの構築に使用されている可能性があるので、DataRobotではバックテストが実行されません。
  • 終了日は、データを抽出する際に除外されます。 たとえば、2015年の12月31日までのデータが必要な場合は、終了日は2016年の1月1日に設定する必要があります。
  • 検定パーティション(初期モデル構築の前に高度なオプションで設定)がトレーニングデータの後に発生する場合、リーダーボードには検定スコアが表示されます。 それ以外の場合、リーダーボードには「N/A」(該当せず)と表示されます。
  • 同様に、モデルの構築にホールドアウトデータが使用された場合、リーダーボードのホールドアウトスコアに「N/A」と表示されます。
  • 日付/時刻のパーティショニングでは、1900年以前の日付はサポートされません。

開始/終了日をクリックしてクリック可能なカレンダーを開き、日付を設定します。 カレンダーを開いた際、既存のモデルに使用された日付が最初に表示されます。 日付を調整し、モデルで使用するデータが最終モデルグラフィックに表示されていることを確認します。

時間ウィンドウのサンプリング

日付/時刻パーティションプロジェクトで時間ウィンドウ内の一部のデータだけを使用する場合、指定された時間ウィンドウ内の部分データでトレーニングできます。 その場合、Enable Time Windowサンプリングボックスを選択して、パーセンテージを指定します。 DataRobotは、そのパーセンテージのデータを使用して、時間範囲での均一なサンプルを取得します。 この機能は、実行時間やメモリーの制限が生じる可能性のあるときに、完全な時間ウィンドウで季節的な影響をキャプチャする必要のある大きなデータセットの場合に便利です。

サマリー情報の表示

モデルを構築した後、モデル情報タブを使用して、モデルの概要、バックテストサマリー、およびリソース使用率に関する情報を確認します。

備考:

  • 分割の上にカーソルを置くと、行数、日付、および期間が表示されます(これらの情報は、リーダーボードに表示されている値と異なることがあります)。 ここに表示される情報は、DataRobotでモデルのトレーニングに使用された実測値です。 たとえば、2015年6月1日から2015年6月30日までの開始日/終了日 モデルをリクエストしたが、データセットに2015年6月7日から2015年6月14日までのデータしかない場合、ホバー表示は次のように示します。開始日と終了日の実際の日付(2015年6月7日から2015年6月15日まで)、期間は8日間。

  • モデルの概要は、検定分割の行数のサマリーです(ホールドアウト分割の下の最初の分割)。

  • 期間ベースのテストを作成する場合、検定サマリーは行数の違いになることがあります。 この理由は、指定した期間で使用できるデータの行数が異なることがあるからです。

  • バックテストでまだ計算されていませんというメッセージが表示された場合、(データセットのギャップなどが原因で)検定分割に使用できるデータがないことを示します。 すべてのバックテストが完了していなかった場合、DataRobotは、バックテストスコアにアスタリスクを表示します。

  • 下部に一覧表示される「reps」は上記のバックテストに相当し、実行が完了した順に表示されます。

特徴量の時間経過チャートを理解する

時間経過チャートでは、元のモデリングデータと派生データの両方でプライマリ日付/時刻特徴量で特徴量がどのように変化するかを表示することによって、トレンドと潜在的なギャップを識別できます。 チャートは、すべての時間認識プロジェクト(OTV、単一系列、および複数系列)で使用可能です。 時系列の場合、ユーザー設定の各予測距離に使用できます。

ページのツールを使用して、特定の時間範囲にフォーカスできます。 OTVと単一系列プロジェクトのディスプレイオプションは、複数系列のオプションとは異なります。 時間経過チャートを表示するには、最初にチャートデータを計算する必要があります。 計算が完了したら、次の操作を行います。

  1. チャートの粒度を設定します。 解像度オプションはDataRobotによって自動検出されます。 全てのプロジェクトタイプで解を設定できます(複数系列プロジェクトの場合、このオプションは追加設定にあります)。

  2. ヒストグラムの表示と非表示を切り替えて、EDA1で使用されているビンを視覚化します。

  3. チャートの下にあるデータ範囲スライダーを使用して、時間プロットの特定の範囲をハイライトします。 小さいデータセットの場合、選択された部分にスライダーをドラッグできます。 大きいデータセットでは、ブロックページネーションが使用されます。

  4. 複数系列のプロジェクトについて、予測距離と個々の系列(または系列間の平均)の両方をプロットするように設定できます。

時系列プロジェクトの場合、データページには派生した特徴量の作成プロセスを理解するのに役立つ特徴量の系統チャートも用意されています。

ホールドアウトなしでのパーティション

データポイントの数が限られている場合など、ホールドアウトセットなしでのプロジェクト作成が望ましい場合があります。 日付/時刻分割プロジェクトの最少データ取込みサイズは140行です。 ホールドアウト分割を追加がオフの場合、最小取込みは120行になります。

DataRobotのデフォルト設定では、ホールドアウト分割が作成されます。 スイッチをオフにすると、表示から赤いホールドアウト分割が消え(バックテスト分割と検定分割のみが表示されます)、バックテストが再計算されて右側にシフトします。 その他の設定機能は変更されません(検定長とギャップ長およびバックテストの数は引き続き変更可能です)。 プロジェクトが構築された後、リーダーボードには、検定スコアとバックテストスコアが表示されますが、ホールドアウトスコアやホールドアウトのロックを解除オプションは表示されません。

ホールドアウト分割を作成しない場合のその他の違いを以下に示します。

  • リフトチャートROC曲線は両方とも、そのデータソースとして設定した検定セットを使用してのみ構築できます。
  • モデル情報タブには、ホールドアウトバックテストやホールドアウト関連の注意は表示されません。
  • 予測タブから計算できる予測は、すべてのデータ検定だけです。
  • 学習曲線グラフには、検定またはホールドアウトにトレーニングされたモデルはプロットされません。
  • モデル比較では、検定およびバックテストの結果だけが使用されます。

最終モデルについて

元の(「最終的な」)モデルはホールドアウトデータなしでトレーニングされているので、最新のデータが含まれません。 これは最初のバックテストを表します。 したがって、予測は、インサイト、係数、およびモデルの評価に役立つタブに表示されるその他のデータに一致します。 (これは、新しいトレーニング期間ダイアログの最終モデルをクリックし、データモデルで使用されるデータを表示することによって確認できます。) より最新のデータを使用する場合は、開始日と終了日を使用してモデルを再トレーニングします。

備考

すべてのデータに対する再トレーニングには、注意が必要です。 時系列では、過去のデータが現在の予測にマイナスの影響を与えることがよくあります。 100%のデータでデプロイ用モデルを再トレーニングしないほうがよい理由は数多くあります。 トレーニングウィンドウがデプロイに与える影響の程度を考えて、次のことを確認してください。

  • データのすべてが、実際に最近の予測と関連しているか?
  • 現在の予測に悪影響を及ぼす可能性があり、関連性がなくなった過去の変更やイベントがデータにあるか?
  • バックテスト1のトレーニングウィンドウサイズ以外に、実際に関連するものはあるか?

デプロイ前の再トレーニング

モデルを選択してホールドアウトのロックを解除した後、(ハイパーパラメーターが固定された状態であっても)予測の精度を確認するためにモデルを再トレーニングすることができます。 元のデータはホールドアウトデータを使用せずにトレーニングされているので、最新のデータが含まれていません。 これは、新しいトレーニング期間ダイアログの最終モデルをクリックし、データモデルで使用されるデータを表示することによって確認できます。

モデルを再トレーニングするには、次の手順を実行します。

  1. リーダーボードで、プラス記号(+)をクリックして新しいトレーニング期間ダイアログを開き、トレーニング期間を変更します。

  2. 最終モデルを表示して、モデルが最新のデータでトレーニングされていることを確認します。

  3. スライダーをクリックして、フローズン実行を有効にします。

  4. 開始/終了日を選択して、再トレーニングに使用する(ホールドアウトデータの日付を含む)データの日付を入力します。 「+1」の手法を使用することを忘れないでください(指定する最後の日付の翌日の日付を入力します)。

モデルの再トレーニング

最新のデータでモデルを再トレーニング*すると、モデルはサンプル外予測を行わなくなります(リーダーボードインサイトの多くがサンプル外予測に基づいています)。 したがって、最新のデータでトレーニングされた子(推奨および再構築)モデルには、再トレーニングしたモデルをスコアリングする追加サンプルがありません。 インサイトはDataRobotの推奨を理解したり、モデルパフォーマンス分析を進めたりする上で、主要なコンポーネントなので、親(元の)モデルのインサイトが子(固定)モデルにリンクされます。

* この状況は、モデルがホールドアウトに対してトレーニングされた場合でも発生することがあります(「スリム実行」モデルにもスタックされた予測がありません)。

影響を受けるインサイトを以下に示します。

  • ROC曲線
  • リフトチャート
  • 混同行列
  • 安定性
  • 予測の精度
  • 系列のインサイト
  • 時系列の精度
  • 特徴量ごとの作用

バックテストを理解する

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

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

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

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

ギャップを理解する

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

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

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

機能に関する注意事項

OTVを使用する場合は、次の点に注意してください。 さらに、ファイルサイズに関する注意事項については、 ファイル要件のドキュメントを参照してください。

備考

以下のリストでは、最新の注意事項が最初に表記されています。

  • フローズンしきい値はサポートされていません。

  • 単調モデルを含むアンサンブルでは、OTVプロジェクトのリーダーボードにMONOラベルが表示されません。

  • 時間経過に伴う予測をプレビューするとき、再トレーニングされていないモデルだけが表示されます(デプロイ推奨バッジのあるモデルなどは表示されません)。

  • 長いバックテスト期間を設定してもモデルは構築されますが、十分なデータがない場合、バックテストが実行されません。 そのような場合、バックテストスコアはリーダーボードで使用できません。

  • 日付パーティション列のタイムゾーンは無視されます。 データセットに複数のタイムゾーンが含まれる場合、問題が発生することがあります。 この問題を回避するには、DataRobotの外部で単一のタイムゾーンに変換してください。 また、夏時間はサポートされません。

  • 1900年以前のデータはサポートされません。 必要な場合は、データの日付を前にシフトしてください。

  • 現在、うるう秒はサポートされていません。


更新しました February 6, 2024