Skip to content

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

データのパーティショニングと検定

パーティショニングにより、最大限の精度が得られるように分割されたトレーニングデータのセグメントが作成されます。 以下のセクションでは、DataRobotが作成するセグメントについて説明します。

備考

モデルの評価と選択には、検定と交差検定のスコアのみを考慮してください。 必ず最良のモデルを選択した後に、ホールドアウトスコアを使用して、モデルパフォーマンスの最終的な見積もりを行います。 (DataRobot Classicのみ:ホールドアウトスコアが誤ってモデル選択に影響しないように、DataRobotは南京錠アイコンの後ろにスコアを隠しています)。最適なモデルを選択したら、ホールドアウトデータを使用してスコアリングします。

検定タイプ

正解率を最大限に高めるため、データはトレーニングデータ、検定データ、ホールドアウトデータに分離されます。 データセットのセグメント(分割)は以下のように定義されます。

分割 説明
トレーニング トレーニングセットはモデルの構築に使用されるデータです。 線形モデル係数や決定木の分割などは、トレーニングセットの情報から引き出されます。
検証 検定(テスト)セットは、トレーニングセットの一部ではなく、以前に見られなかったデータを使用してモデルのパフォーマンスを評価するのに使用されます。 このデータはモデルを構築するのには使用されなかったため、偏りのないモデルの推定正解率を提供することができます。 モデルを選択する際には、通常検定の結果を比較します。
ホールドアウト 一連のモデルをトレーニングし、検定スコアに基づいて 「最適」 を選択するプロセスでは、モデルのパフォーマンスが過度に楽観的に推定される可能性があるため、DataRobotでは、この選択バイアスに対する追加のチェックとしてホールドアウトセットを使用します。 ホールドアウトデータは、モデルのトレーニングおよび検定の処理中には見ることができません。 モデルの選択後に、このデータを使用して、別のチェックとしてモデルを採点することができます。

分割を作成する場合、DataRobotはデフォルトで5分割を使用します。 DataRobotはトレーニングの各ラウンドで、これらの分割された増加する量のデータを使用します。 フルオートパイロットの場合、最初のラウンドでは、最初の4つのパーティションのトレーニングデータの16%で構成されるランダムサンプルを使用します。 次のラウンドではトレーニングデータの32%が使用され、最終ラウンドでは64%が使用されます。 検定パーティションとホールドアウトパーティションは変更されません。 (他のモデリングモードでは、異なるサンプルサイズを使用する場合があります)。

データのパーティショニングは下図のように視覚化することができます。

そして、交差検定は次のように視覚化されます。

トレーニングデータで「アウトオブサンプル」の予測を作成するときに、DataRobotは検定パーティションに「スタックされた予測」を使用します。

スタックされた予測とは

何らかの操作を行わない限り、トレーニングデータからの予測は誤って高い精度を見せる傾向があります。 この問題に対処するために、DataRobotでは、スタックされた予測と呼ばれる技法をトレーニングデータセットに対して使用します。

スタックされた予測では、トレーニングデータの様々な複数のサブセット上に複数のモデルを構築します。 行の予測は、そのデータをトレーニングから除外したモデルを使用して作成されます。 この方法により、各予測は効果的に「アウトオブサンプル」予測になります。

これを行うために、DataRobotは各モデルに対して交差検定を実行し、Out-Of-Fold予測を「スタック」します。 たとえば、3分割交差検定は以下のように表すことができます。 トレーニングデータのすべての行がスタックに存在しますが、この方法では、「スタック」はトレーニングデータのアウトオブサンプル予測を提供します。

ダウンロードされた予測の例を考えて見ます。

DataRobotでは、ホールドアウトパーティションが明示されます。検定パーティションには0としてラベルが設定されます。

スタックされた予測に関する注意事項

800MBを超えるデータセットは、(アウトオブサンプル予測ではなく)スタックされた予測を持たないモデルを含むプロジェクトとなります。 検定用にもホールドアウト用にもトレーニングされていないモデルの場合、すべてのスコアとインサイトを使用できます。 それ以外の場合:

  • 検定スコアは、検定用にトレーニングされたモデルでは使用できません。ホールドアウトスコアは、ホールドアウト用にトレーニングされたモデルでは使用できません。

  • ホールドアウト用ではなく、検定用にトレーニングされたモデルの場合:

    • ホールドアウトスコアは使用できますが、検定スコアは使用できません。
    • リフトチャート(および評価タブのその他のチャート)はホールドアウトで使用できますが、検定では使用できません。
    • 予測の説明のプレビューは可能ですが、分布図は表示されません。
  • 検定およびホールドアウトのためにトレーニングされたモデル(100%のデータでトレーニングされたモデル)の場合:

    • 指標スコアは取得できません。
    • リフトチャート(や評価タブの他のチャート)は表示されません。
  • インサンプル予測によるインサイトが計算されるかどうかは、さまざまな条件に基づいています。DataRobotは、モデルトレーニングでのサンプリングとパーティションに基づいて、何が影響を受けるかを説明するメッセージを表示します。

  • 検定のみ、または検定とホールドアウトのためにトレーニングされたモデルの場合、 予測の説明のプレビューは可能ですが、予測分布図は表示されません(スタックされた予測がなく、インサンプル予測のみであるためです)。

検定スコア

リーダーボードには作成されたすべてのモデル(自動・手動を問わず)とモデルのスコアが表示されます。 スコアは、以下のカラムすべて(または一部)に表示されます。

  • 検証
  • 交差検定(CV)
  • ホールドアウト

特定の列の有無は、プロジェクトの開始時に選ばれた検定のパーティションのタイプによって異なります。

初期設定では、20%のホールドアウトと5分割交差検定が作成されます。 初期設定を使用した場合は、全3列に値が表示されます。

検定列のスコアは、モデルのトレーニングされた予測を使用して、最初の検定分割に対して計算されます。 つまり「1分割」のデータを使用します。 交差検定の分割は、5つの異なるトレーニング/検定分割から計算された5つのスコアの平均(初期設定)です。

検定タイプの理解

モデルの検定には2つの重要な目的があります。 一つ目は、与えられたデータセットに対して構築されたすべてのモデルから最良のモデルを選択するために使用します。 最良のモデルを選択したら、そのモデルがニーズを満たすだけの精度があるかどうかを検定によって確かめることができます。 下節ではデータを使用してモデルを検定する方法について説明します。

K-分割交差検定(CV)

備考

データセットのサイズが800MBを超えると、DataRobotは交差検定を無効にします。 その結果、トレーニング-検定-ホールドアウト(TVH)が、唯一サポートされている分割手法となります。

予測モデルのパフォーマンスは、通常、トレーニングセットのサイズが大きくなるほど向上します。 また、モデルの推定パフォーマンスは、検定セットが大きい方が、一貫性が高くなります。 したがって、トレーニングと検定には、できるだけ多くのデータを使用するのが望ましいと言えます。 交差検定法を使用すると、各セットで使用し得るデータ量を最大にすることができます。 このプロセスは以下の通りです。

  1. データを2つ以上の「分割」と呼ばれるセクションに分けます。
  2. 分割ごとに1つのモデルを作成します。その分割に割り当てられたデータは検定に使用され、それ以外のデータはトレーニングに使用されます。

この方法のメリットは、スコアリングにすべてのデータが使用され、もし充分な分割が使用されれば、ほとんどのデータはトレーニングに使用されるということです。

  • 長所:この方法ではモデルパフォーマンスについてより良い推定が得られます。
  • 短所:CVは、マルチパスのため計算負荷が高く、より時間がかかります。

大規模データセットで作業する場合のオーバーヘッドを相殺するために、DataRobotでは、最初にデータの小さい部分でモデルのトレーニングを行い、1つの交差検定の分割だけを使用してモデルパフォーマンスの評価を行います。

次に、DataRobotは、最も高いパフォーマンスを示したモデルに対してサブセットのサイズを大きくします。 最終的には、最良のモデルだけが全交差検定の分割に対してトレーニングされます。 これらのモデルに対して、k-分割交差検定のトレーニングとスコアリングを完了します。 結果として、一つのモデルに対して完了した交差検定の平均スコアが交差検定列に表示されます。 パフォーマンスの結果が良くなかったモデルの交差検定スコアは表示されません。 これらのモデルに対しては「1分割」分の検定しか行われなかったため、スコアは検定列に表示されます。 これらのCVモデルの完全な交差検定モデル評価を手動で行うには、交差検定列の実行をクリックします。

データセットが50,000行以上の場合は、交差検定は自動で実行されません。 交差検定を開始するには、そのモデルの交差検定列の実行をクリックします。 データセットが800MBよりも大きい場合、交差検定を行うことはできません。 その場合、DataRobotではTVH(下記参照)が代わりに使用されます。 TVHを使用した十分に有益なデータがない場合、小さいデータセットであれば一般的にCVが便利です。

トレーニング、検定、ホールドアウト(TVH)

800MBより大きいデータセットのデフォルトの検定方法であるTVH法では、データセットが3つの異なるセクション(トレーニング、検定、およびホールドアウト)にパーティショニングすることによって予測モデルの構築と評価が行われます。 予測はデータに対する1回の成功に基づきます。

  • 長所:この方法は、データのスコアリングを行うために各データで1回の成功しか行われないので交差検定よりも高速です。

  • 短所:高速であるということと同じ理由により、精度はやや劣ります。

800MBよりも大きいプロジェクト(非時間認識のみ)の場合、トレーニングパーティションの割合はスケールダウンされません。 検定パーティションおよびホールドアウトパーティションはデフォルトサイズ(それぞれ80MBおよび100MB)に設定されていて、ユーザーが手動で変更しない限り変更されません(共に最大サイズは400MB)。 したがって、検定およびホールドアウトの割合は、大きい方のトレーニングパーティションでスケールダウンされます。 トレーニングパーティションの割合は、検定およびホールドアウトの割合が処理された後の残りの割合で構成されます。

たとえば、900MBのプロジェクトがある場合を考えてみます。 検定およびホールドアウトのパーティションが、それぞれ80MBと100MBのデフォルトサイズである場合、検定の割合は9%になり、ホールドアウトの割合は11.1%になります。 トレーニングパーティションは残りの720MBで構成され、その割合は 80%になります。

時間認識プロジェクトの場合、TVH法は使用できません。 その場合は、日付/時刻のパーティションを使用します。

例:分割手法

以下の例は、さまざまな分割手法がDataRobotの非時間認識プロジェクトでどのように機能するかを示します。 すべての例は二値分類の問題(債権不履行の予測)を示します。

ランダムな分割

各パーティションの行は、ターゲット値を考慮せずにランダムに選択されます。

状態 Loan_purpose Is_bad_loan(ターゲット) 出力(TVH) 出力(5分割CV)
AR 借金の整理 0 トレーニング 分割1
AZ 借金の整理 0 トレーニング 分割5
AZ 家の修繕 1 検証 分割4
AZ クレジットカード 1 トレーニング 分割4
CO クレジットカード 0 トレーニング 分割3
CO 家の修繕 0 トレーニング 分割2
CO 家の修繕 0 検証 分割1
CT スモールビジネス 1 トレーニング ホールドアウト
G​A クレジットカード 0 トレーニング 分割3
ID スモールビジネス 0 トレーニング 分割2
IL スモールビジネス 0 トレーニング ホールドアウト
IN 家の修繕 1 ホールドアウト 分割5
IN 借金の整理 1 ホールドアウト 分割3
KY クレジットカード 0 トレーニング ホールドアウト

層化抽出分割

前のランダム分割の例とは異なり、層化抽出分割では、各パーティション(T、V、H、または各CV分割)のPositiveおよびNegativeのターゲット例の比率はほぼ同じになります。

状態 Loan_purpose Is_bad_loan(ターゲット) 出力(TVH) 出力(5分割CV)
AR 借金の整理 1 トレーニング 分割1
AZ 借金の整理 0 トレーニング 分割5
AZ 家の修繕 1 検証 分割4
AZ クレジットカード 0 トレーニング 分割4
CO クレジットカード 1 トレーニング 分割3
CO 家の修繕 0 トレーニング 分割2
CO 家の修繕 0 検証 分割1
CT スモールビジネス 1 トレーニング ホールドアウト
G​A クレジットカード 0 トレーニング 分割3
ID スモールビジネス 1 トレーニング 分割2
IL スモールビジネス 0 トレーニング ホールドアウト
IN 家の修繕 1 ホールドアウト 分割5
IN 借金の整理 1 トレーニング 分割3
KY クレジットカード 0 ホールドアウト ホールドアウト

グループ分割

このグループ分割の例では、状態がグループ列として使用されます。 同じ状態の行は同じパーティションになります。

状態 Loan_purpose Is_bad_loan(ターゲット) 出力(TVH) 出力(5分割CV)
AR 借金の整理 1 トレーニング 分割1
AZ 借金の整理 0 トレーニング 分割5
AZ 家の修繕 1 トレーニング 分割5
AZ クレジットカード 0 トレーニング 分割5
CO クレジットカード 1 検証 分割3
CO 家の修繕 0 検証 分割3
CO 家の修繕 0 検証 分割3
CT スモールビジネス 1 トレーニング 分割1
G​A クレジットカード 0 トレーニング 分割2
ID スモールビジネス 1 トレーニング 分割2
IL スモールビジネス 0 ホールドアウト ホールドアウト
IN 家の修繕 1 ホールドアウト 分割4
IN 借金の整理 1 トレーニング 分割4
KY クレジットカード 0 トレーニング ホールドアウト

パーティション特徴量の分割

パーティション特徴量法ではTVHまたはCVのいずれかが使用されます。

TVH: 「My_partition_id」の3つの一意の値は割り当てられたパーティションに直接対応します。

状態 Loan_purpose Is_bad_loan(ターゲット) My_partition_id(パーティション特徴量) 出力
AR 借金の整理 1 my_train トレーニング
AZ 借金の整理 0 my_train トレーニング
AZ 家の修繕 1 my_train トレーニング
AZ クレジットカード 0 my_val 検証
CO クレジットカード 1 my_val 検証
CO 家の修繕 0 my_val 検証
CO 家の修繕 0 my_train トレーニング
CT スモールビジネス 1 my_train トレーニング
G​A クレジットカード 0 my_train トレーニング
ID スモールビジネス 1 my_train トレーニング
IL スモールビジネス 0 my_holdout ホールドアウト
IN 家の修繕 1 my_holdout ホールドアウト
IN 借金の整理 1 HO ホールドアウト
KY クレジットカード 0 HO ホールドアウト

CV: My_partition_idの7つの一意の値は作成された7つのパーティションに直接対応します。

状態 ローン_目的 Is_bad_loan(対象) My_partition_id(パーティション特徴量) 出力
AR 借金の整理 1 P1 分割1
AZ 借金の整理 0 P1 分割1
AZ 家の修繕 1 P2 分割2
AZ クレジットカード 0 P2 分割2
CO クレジットカード 1 P3 分割3
CO 家の修繕 0 P3 分割3
CO 家の修繕 0 P4 分割4
CT スモールビジネス 1 P4 分割4
G​A クレジットカード 0 P5 分割5
ID スモールビジネス 1 P5 分割5
IL スモールビジネス 0 P6 分割6
IN 家の修繕 1 P6 分割6

更新しました March 13, 2024