Skip to content

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

モデリング処理

このセクションでは、DataRobotの初期モデル構築プロセスの理解に役立つ情報を紹介します。

DataRobotは、データ品質の問題の自動検出(場合によっては修正)を行う完全なデータ品質評価も実行します。ワークフローの概要については、基本的なモデリングプロセスセクションも参照してください。

モデリングモード

モデリングモードの正確なアクションおよびオプションは使用するデータに応じて異なります。基本的な説明に加えて、以下のセクションでは状況により異なるモデリング動作について説明します。

小規模なデータセット

AutoMLのオートパイロットでは、データセットに含まれる行数に応じてサンプル割合実行が変更されます。次の表でその基準を示します。

行数 実行するパーセンテージ
2000行未満 最終オートパイロットステージのみ(64%)
2001~3999行 最終の2つのオートパイロットステージ(32%および64%)
4000行以上 オートパイロットの全てのステージ(16%、32%、および64%)

クイックオートパイロット

クイックオートパイロットは、デフォルトのモデリングモードです。クイックモードは、通常、テストされたさまざまなオプションを犠牲にすることなく、より高精度のモデルを利用できるように最適化されています。その結果、リファレンスモデルは実行されません。

DataRobotでは、「一般的」なデータセットでのクイックオートパイロット(32%)の最初のステージで、以下のモデルが実行されます。

  • TensorFlow
  • XGBoost
  • LightGBM
  • Elastic Net、Ridge回帰、またはLasso回帰(テキスト対応)
  • Nystroem Kernel SVM
  • ランダムフォレスト
  • Vowpal Wabbit
  • Sparkランダムフォレスト
  • GA2M
  • 単一列テキストモデル(ワードクラウド用)
  • R GBM
  • RuleFit

次に、ステージ2が開始され、ステージ1の上位4モデルに対して64%で実行されます。ステージ2の上位2モデルより「平均」アンサンブルモデルが作成されます。

単一列テキストデータセットの場合、以下のモデルが実行されます。

  • Elastic Net(テキスト対応)
  • 単一列テキストモデル(ワードクラウド用)
  • 文書索引語行列に行われたSVM

オフセットまたはエクスポージャーセットを含むプロジェクトでは、以下が実行されます。

  • XGBoost
  • Elastic Net(テキスト対応)
  • LightGBM
  • ASVM
  • Scikit learn GBM
  • GA2M + 格付表
  • Eureqa GAM
  • 単一列テキストモデル(ワードクラウド用)

2ステージモデル

データセットによっては、2ステージのモデリングプロセスになります。これらのプロジェクトでは、他では使用できない追加モデル(頻度-強度モデル)が作成されます。この2ステージプロセスの作成、およびその結果の追加のモデルタイプは、ターゲットがゼロ過剰(データセットの50%以上の行にターゲット特徴量に対して0の値がある場合)の連続値プロジェクトで発生します。これらの手法が最も頻繁に適用されるのは、保険のモデリングと運用の損益モデリング(保険請求、損失の深刻度を考慮した差し押さえ頻度のモデル化、マイレージポイント交換アクティビティ)です。

対象モデル(以下を参照)では、以下のタブでステージに関連する情報を表示できます。

  • 係数タブでは、線形モデルに対して選択したステージに対応するパラメーターがグラフ化されます。さらに、係数をエクスポートすると、2つの追加列(Frequency_CoefficientおよびSeverity_Coefficient)に各ステージの係数が表示されます。
  • 高度なチューニングタブでは、選択したステージに対応するパラメーターがグラフ化されます。

さらに、オートパイロットの一部として頻度/強度手法をサポートするいくつかのモデルが実行されます。追加のモデルは、リポジトリで使用できます。ステージングを使用できるモデルは、前の「Frequency-Cost」または「Frequency-Severity」存在で識別され、以下を含みます。

  • XGBoost*
  • LightGBM*
  • 一般化加法モデル
  • Elastic Net

* これらのモデルでは係数を使用できません

ユースケース例:保険

Zachは、頻度(保険加入者が請求を行う頻度)と強度(請求の費用)に基づいて保険請求モデルを構築しています。Zachは、来年の潜在的な保険加入者の請求額の支払いを予測しようとしています。一般的に、ほとんどの加入者は事故に遭わないので請求を行いません。したがって、各行が1人の保険加入者(ターゲットは請求支払い)を表すデータセットでは、ほとんどの行のターゲット列は$0になります。Zachのデータセットには、ゼロ過剰のターゲットがあります。トレーニングデータで表されるほとんどの保険加入者のターゲット値は0ドルです。このプロジェクトでは、DataRobotはいくつかの頻度-費用モデルと頻度-強度モデルを構築します。

データサマリー情報

以下の情報は、ターゲット特徴量を選択し、モデリング処理を開始したことを前提としています。

ターゲット特徴量を選択し、モデリングを開始すると、データが分析され、この情報がデータページのプロジェクトデータタブに表示されます。データ特徴量は、ターゲット特徴量の予測にあたり、有用性の高いものから順番にリスト表示されます。DataRobotは、各特徴量のデータ(特徴量)型も検出します。サポートされているデータ型は次のとおりです。

テキスト特徴量とカテゴリー特徴量の比較

DataRobotでは、人間の知識を介在させて、以下のようにテキスト特徴量とカテゴリー特徴量を区別しています。

  1. ユニーク数の行の数が列サイズの5%未満であるか、ユニーク数の行の数が60行未満である場合、列はカテゴリーと分類されます。

  2. DataRobotでは、Pythonの言語識別子であるlangidを使用して言語を検出します。言語が検出されない場合は、列がカテゴリーとして分類されます。

  3. 言語は、「日本語・中国語・韓国語」と「英語およびその他の言語("English+")」に分類されます。次のチェック項目のうち少なくとも3つに合格した場合、特徴量はテキストとして分類されます。

    英語+

    • (Number of unique lines / total number of lines > 0.3)またはnumber of unique lines > 1000
    • 1行あたりの平均スペース数が1.5以上である。
    • 10%以上の行に4語以上の単語がある。
    • 最長の行に6語以上の単語がある。

    日本語・中国語・韓国語

    • (Number of unique lines / total number of lines > 0.3)またはnumber of unique lines > 1000
    • 平均的な行の長さが4文字以上である。
    • 10%以上の行に7文字以上の文字がある。
    • 最長の行に12文字以上の文字がある。

手動特徴量の変換では、自動割り当てをオーバーライドできますが、エラーが発生する可能性があるため、DataRobotでは変換プロセス中に警告が表示されます。

データページの追加情報に含まれる内容:

有用性スコア

有用性バーは、特徴量とターゲットとの相関の度合いを示します。これらのバーは、「交替条件付き期待値」(ACE)スコアに基づいています。ACEスコアは、ターゲットとの非線形関係性を検出できますが、単変量であるため、特徴量間の交互作用効果を検出できません。有用性は、特徴量の情報内容を測定するアルゴリズムを使用して計算されます。計算はデータセット内の特徴量ごとに行われます。有用性スコアには、2つのコンポーネント(ValueおよびNormalized Value)が含まれます。

  • Value:二値分類および連続値の場合、選択したプロジェクト指標を使用して検定セットで評価された単変量モデルの予測です。その特徴量だけを使用してモデルを構築する場合に期待される指標スコアが(概ね)分かるので役に立ちます。多クラスの場合、Valueは各クラスの二値有用性上位モデルからの加重平均として計算されます。
  • Normalized Value:正規化されたValue。1までのスコア(スコアが高いほど良い)。0は、精度がトレーニングターゲットの平均を予測することと同じであることを意味します。スコアが0未満の場合は、ACEモデルの予測がターゲットの平均モデルよりも劣っていること(過剰適合)を意味します。

これらのスコアは、その特徴量だけを使用してターゲットを予測するシンプルなモデルの予測能力の指標を示します。(スコアは エクスポージャー によって調整されますが、これはエクスポージャーパラメーターを使用している場合のみ行われます。)スコアは、プロジェクトの精度指標を使用して測定されます。

特徴量は最も有用性の高い(バーの緑の量が一番多い)から最も有用性の低い(バーの緑の量が一番少ない)まで格付けされます。各特徴量の隣にある緑色のバーの長さは相対的有用性を示しています。EDA画面の緑色のバーの長さはNormalized Valueに比例し、特徴量の最大の有用性が完全なバーに等しくなります。緑色のバーの上にマウスを置くと両方のスコアが表示されます。これらの数値は、その特徴量だけを使用するモデルのプロジェクト指標(プロジェクトが実行されたときに選択された指標)に関するスコアを表しています。リーダーボードで指標を変更してもツールチップに表示されるスコアには影響しません。

特徴量名をクリックして、データ値の詳細を表示します。値はEDA1とEDA2との間で変化するが(例えば、行がホールドアウトの一部であるために削除されるか、値が欠落しているなど)、チャートとオプションの意味は同じである。

欠損値

DataRobotでは、欠損値の処理はモデルや値のタイプに応じて異なります。DataRobotで欠損値として認識および処理される例を以下に示します。

すべての特徴量タイプに対する特殊なNaN値

null, NULL
na, NA, n/a, #N/A, N/A, #NA, #N/A N/A
1.#IND, -1.#IND
NaN, nan, -NaN, -nan
1.#QNAN, -1.#QNAN
?
    。Inf, INF, inf, -Inf, -INF, -inf
なし

1つ以上の空白文字や空白のセルも欠損値として扱われます。

以下のメモは、DataRobotでの値の処理について示します。

  • いくつかのモデルでは欠損値がネイティブに処理されるので、特別な処理は必要ありません。

  • 線形モデル(連続値やSVMなど)の場合、処理はケースに応じて異なります。

    • 中央値補完法:欠損していないトレーニングデータの中央値を使用して、欠損値が補完されます。この処理により、ランダムに欠損しているデータが効果的に処理されます。
    • 欠損値フラグ:欠損値のある各特徴量に二値分類の「欠損値フラグ」が追加され、モデルで欠損値のパターンが体系的に認識され、学習が行われます。この処理により、ランダムに欠損しているデータが効果的に処理されます。
  • ツリーベースのモデルでは、中央値ではなく任意の値(-9999など)で補完されます。この方法では、可能な限り正確な結果を素早く得ることができます。

  • 全てのモデルのカテゴリー型特徴量では、欠損値はカテゴリーの別のレベルとして取り扱われます。

数値列

EDA時に特徴量の型が値に割り当てられます。数値列では、値に3つのタイプがあります。

  1. 数値:整数または浮動小数点付きの数。
  2. 特殊なNaN値(上記の表を参照): 数値ではありませんが、NaNを表すものとして認識されます。
  3. その他の全ての値:文字列やテキストデータなど。

特定の列が数値かどうかを決定する際にDataRobotで使用される規則、および予測時の列の処理方法を示します。

  • 厳密な数値:列に数値と特殊なNaN値しかない場合、列は数値として扱われます。予測時に、同じNaN値は欠損値として受け入れられて予測が作成されます。その他の値が存在する場合、エラーが発生します。

  • 許容される数値:列に数値、特殊なNaN値、およびその他の値(1つだけ)がある場合、その他の値は欠損値として扱われ、列は数値として処理されます。予測時に、その他の全ての値は欠損値として扱われます(最初の値と異なるかどうかは関係ありません)。

  • カテゴリー:EDAの際、列に2つ以上のその他の値(数値以外とNaN以外)が見つかった場合、特徴量は数値ではなくカテゴリーとして処理されます。

  • EDAサンプリングの間にその他の値が処理されず、特徴量が数値として認識された場合、トレーニングの前(EDAの後)に、その列の完全なデータセットが"参照"されます。完全なデータセットにその他の値が検出された場合、列は許容される数値として処理されます。それ以外の場合は、厳密な数値として処理されます。


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