Skip to content

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

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

モデルの評価と選択には、必ず検定スコアおよび交差検定スコアだけを使用します。最良のモデルを選択した後にのみ、ホールドアウトスコアを使用して、モデルパフォーマンスの最終的な推定を行います。ホールドアウトスコアがモデルの選択に不用意に影響しないように、DataRobotは鍵アイコンでスコアを「隠しています」。最適なモデルを選択した後、ホールドアウトデータを使用してスコアリングできます。次のセクションでは、データセットのセグメントについて説明します。

検定タイプ

精度を最大化するために、DataRobotはデータをトレーニング、検定、ホールドアウトデータに分離します。データセットのセグメント(分割)は以下のように定義します:

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

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

トレーニングデータで「アウトオブサンプル」の予測を作成するときにDataRobotで検定パーティションのどの分割が使用されるのかについては、スタックされた予測の説明を参照してください。

検定スコア

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

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

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

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

検定列のスコアの計算には、モデルのトレーニング済みの予測が最初の検定パーティションに対して使用されます。つまり、「1分割」のデータが使用されます。交差検定パーティションは、5つの異なるトレーニング/検定パーティションで計算された5つのスコアの平均(デフォルトの場合)です。

検定タイプの理解

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

K-分割交差検定(CV)

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

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

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

  • メリット:この方法ではモデルパフォーマンスについてより良い推定が得られます。
  • デメリット:パスが複数であるため、CVは計算量が多く、実行に時間がかかります。

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

次に、DataRobotは、最も高いパフォーマンスを示したモデルに対してサブセットのサイズを大きくします。最終的には、最良のモデルだけが全交差検定のパーティションに対してトレーニングされます。これらのモデルに対して、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 トレーニング ホールドアウト
GA クレジットカード 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 トレーニング ホールドアウト
GA クレジットカード 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
GA クレジットカード 0 トレーニング 分割2
ID スモールビジネス 1 トレーニング 分割2
IL スモールビジネス 0 ホールドアウト ホールドアウト
IN 家の修繕 1 ホールドアウト 分割4
IN 借金の整理 1 トレーニング 分割4
KY クレジットカード 0 トレーニング ホールドアウト

パーティション特徴量のパーティショニング

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

TVH:「My_pritation_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 トレーニング
GA クレジットカード 0 my_train トレーニング
ID スモールビジネス 1 my_train トレーニング
IL スモールビジネス 0 my_holdout ホールドアウト
IN 家の修繕 1 my_holdout ホールドアウト
IN 借金の整理 1 HO ホールドアウト
KY クレジットカード 0 HO ホールドアウト

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

状態 Loan_purpose 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
GA クレジットカード 0 P5 分割5
ID スモールビジネス 1 P5 分割5
IL スモールビジネス 0 P6 分割6
IN 家の修繕 1 P6 分割6

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