モデリングプロセス¶
このセクションでは、DataRobotの初期モデル構築プロセスの理解に役立つ情報を紹介します。
こちらもご覧ください。
- データ品質評価。データ品質の問題を自動的に検出し、場合によっては対処します。
- ワークフロー概要の基本モデリングプロセスセクション
- DataRobotが使用するモデリングアルゴリズムのリスト
モデリングモード¶
モデリングモードの正確なアクションおよびオプションは使用するデータに応じて異なります。 モードの動作の標準的な説明に加えて、以下のセクションでは状況により異なるモデリング動作について説明します。
小さなデータセット¶
AutoMLのオートパイロットでは、データセットに含まれる行数に応じてサンプル割合実行が変更されます。 次の表が基準を示します。
行数 | 実行するパーセンテージ |
---|---|
2000行未満 | 最終オートパイロットステージのみ(64%) |
2001~3999行 | 最終の2つのオートパイロットステージ(32%および64%) |
4000行以上 | オートパイロットの全てのステージ(16%、32%、および64%) |
クイックオートパイロット¶
クイックオートパイロットは、デフォルトのモデリングモードです。クイックモードは、通常、テストされたさまざまなオプションを犠牲にすることなく、より高精度のモデルを利用できるように最適化されています。その結果、リファレンスモデルは実行されません。 その結果、リファレンスモデルは実行されません。 DataRobotでは、プロジェクトのタイプに応じて、データのサンプルに対してサポートされているモデルが実行されます。
プロジェクトタイプ | サンプルサイズ |
---|---|
AutoML | 通常、データの64%または500MBのどちらか小さい方です。 |
OTV | 各バックテストの100%。 |
時系列 | 日付 / 時刻の分割で定義された各バックテストの最大トレーニングサイズ。 |
この完全なオートパイロットの短縮バージョンでは、ターゲットとパフォーマンス指標を含むさまざまな条件に基づいて実行するモデルが選択されます。ただし、その名前が示すように、より迅速なエクスペリメントをサポートするために、トレーニング実行時間が比較的短いモデルのみが選択されます。 実行するクイックモデルの具体的な数は、プロジェクトとターゲットのタイプによって異なります(たとえば、一部のブループリントは特定のターゲット / ターゲット分布でのみ使用できる)。 平均アンサンブルは、有効にすると、上位2つのモデルから作成されます。 クイックモードでの実行効率を最大限に高めるために、DataRobotはDataRobotで削減した特徴量 セットを自動的に作成しますが、推奨モデルを(またはどのモデルも)自動的に適合させることはありません(特徴量が削減されたセットを適合させるには、モデルの再トレーニングが必要です)。
クイックモードに関連する手順は、 デプロイの推奨およびモデルの準備がチェックされているかどうかによって異なります。
オプションの状態 | アクション |
---|---|
チェック済み |
|
選択解除 | 64%でクイックモードを実行します。 |
単一列テキストデータセットの場合、以下のモデルが実行されます。
- 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は、各特徴量のデータ(特徴量)型も検出します。サポートされているデータ型は次のとおりです。
- 数値
- カテゴリー
- 日付
- パーセンテージ
- 通貨
- 長さ
- テキスト
- 集計されたカテゴリー型特徴量
- 多カテゴリー
- 多ラベル
- 日付期間(OTVプロジェクト)
- ロケーション(Location AIプロジェクト)
データページの追加情報に含まれる内容:
有用性¶
有用性バーは、特徴量がターゲットと相関している度合いを示します。 これらのバーは、「交替条件付き期待値」(ACE)スコアに基づいています。 ACEスコアは、ターゲットとの非線形関係性を検出できますが、単変量であるため、特徴量間の交互作用効果を検出できません。 有用性は、変数の情報内容を測定するアルゴリズムを使用して計算されます。計算はそれぞれの特徴量ごとに行われます。 有用性スコアは、2つのコンポーネント(Value
およびNormalized Value
)が含まれます。
Value
:これにより、その特徴量だけを使用してモデルを構築する場合に期待される指標スコアが(概ね)分かります。 多クラスの場合、Value
は各クラスの二値有用性上位モデルからの加重平均として計算されます。 二値分類および連続値の場合、選択したプロジェクト指標を使用して検定セットで評価された有用性上位モデルからの予測です。Normalized Value
:正規化されたValue
。1までのスコア(スコアが高いほど良い)。 0は、精度がトレーニングターゲットの平均を予測することと同じであることを意味します。 スコアが0未満の場合は、ACEモデルの予測がターゲットの平均モデルよりも劣っていること(過剰適合)を意味します。
これらのスコアは、その特徴量だけを使用してターゲットを予測するシンプルなモデルの予測能力の指標を示します。 (スコアはエクスポージャーによって調整されますが、これはエクスポージャーパラメーターを使用している場合のみ行われます。) スコアは、プロジェクトの精度指標を使用して測定されます。
特徴量は、最も有用性の高いものから低い順にランク付けされています。 各特徴量の横にある緑色のバーの長さは、その相対的な有用性を示しています。—バーの全長と比較したバーの緑色の量は、潜在的な特徴量の最大の有用性を示しています(Normalized Value
に比例しています)。—バーの緑色が強いほど、その特徴量がより高い有用性であることを示しています。 緑色のバーの上にマウスを置くと両方のスコアが表示されます。 これらの数値は、その特徴量だけを使用するモデルのプロジェクト指標(プロジェクトが実行されたときに選択された指標)に関するスコアを表しています。 リーダーボードで指標を変更してもツールチップに表示されるスコアには影響しません。
特徴量名をクリックして、データ値の詳細を表示します。 値はEDA1とEDA2との間で変化するが(たとえば、行がホールドアウトの一部であるために削除されるか、値が欠落しているなど)、チャートとオプションの意味は同じである。
自動特徴量の変換¶
特徴量エンジニアリングは、モデリングプロセスの重要な部分です。 開始を押すと、DataRobotはモデルの精度を高めるために、指定されたデータセットに対して自動特徴量エンジニアリングを実行して派生した特徴量を作成します。 各特徴量タイプのモデリング中にDataRobotが実行する特徴量エンジニアリングタスクのリストについては、以下の表を参照してください。
特徴量タイプ | 自動変換 |
---|---|
数値とカテゴリー |
|
日付 |
|
テキスト |
|
画像 | DataRobotは、フィーチャライザーを使用して画像を数値に変換します:
DataRobotでは、これらのフィーチャライザーをファインチューニングすることもできます。 |
地理空間 | DataRobotはいくつかの手法を使用して、入力データセットから空間ラグ特徴量を自動的に派生します:
DataRobotは、以下に示すジオメトリプロパティの特徴量を派生させます:
|
テキスト特徴量とカテゴリー特徴量の比較¶
DataRobotでは、人間の知識を介在させて、以下のようにテキスト特徴量とカテゴリー特徴量を区別しています。
-
ユニーク数の行の数が列サイズの5%未満であるか、ユニーク数の行の数が60行未満である場合、列はカテゴリーと分類されます。
-
DataRobotでは、Pythonの言語識別子である
langid
を使用して言語を検出します。 言語が検出されない場合は、列がカテゴリーとして分類されます。 -
言語は、「日本語・中国語・韓国語」と「英語およびその他の言語(「英語+」)」に分類されます。 次のチェック項目のうち少なくとも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では変換プロセス中に注意が表示されます。
欠損値¶
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
None
- One or more whitespace characters and empty cells are also treated as missing values.
以下のメモは、DataRobotでの値の処理について示します。
備考
欠損値代入方法は、トレーニング時に固定されます。 トレーニング中に設定された中央値または任意の値のいずれかが予測時に提供されます。
-
いくつかのモデルでは欠損値がネイティブに処理されるので、特別な処理は必要ありません。
-
線形モデル(線形回帰やSVMなど)の場合、処理はケースに応じて異なります。
- 中央値補完法:欠損していないトレーニングデータの中央値を使用して、欠損値が補完されます。 この処理により、ランダムに欠損しているデータが効果的に処理されます。
- 欠損値フラグ:欠損値のある各特徴量に二値分類の「欠損値フラグ」が追加され、モデルで欠損値のパターンが体系的に認識され、モデルから学習されます。 この処理により、パターンに基づいた欠損データが効果的に処理されます。
-
ツリーベースのモデルでは、平均値ではなく任意の値(-9999など)で補完されます。 この方法では、可能な限り正確な結果を素早く得ることができます。
-
全てのモデルのカテゴリー型特徴量では、欠損値はカテゴリーの別のレベルとして取り扱われます。
数値列¶
EDA時に特徴量の型が値に割り当てられます。 数値列では、値に3つのタイプがあります。
- 数値:整数または浮動小数点付きの数。
- 特殊なNaN値(上記の表を参照):数値ではありませんが、NaNを表すものとして認識されます。
- その他の全ての値:文字列やテキストデータなど。
特定の列が数値かどうかを決定する際にDataRobotで使用される規則、および予測時の列の処理方法を示します。
-
厳密な数値:列に数値と特殊なNaN値しかない場合、列は数値として扱われます。 予測時に、同じNaN値は欠損値として受け入れられて予測が作成されます。 その他の値が存在する場合、エラーが発生します。
-
許容される数値:列に数値、特殊なNaN値、およびその他の値(1つだけ)がある場合、その他の値は欠損値として扱われ、列は数値として処理されます。 予測時に、その他の全ての値は欠損値として扱われます(最初の値と異なるかどうかは関係ありません)。
-
カテゴリー:EDAの際、列に2つ以上のその他の値(数値以外とNaN以外)が見つかった場合、特徴量は数値ではなくカテゴリーとして処理されます。
-
EDAサンプリングの間にその他の値が処理されず、特徴量が数値として認識された場合、トレーニングの前(EDAの後)に、その列の完全なデータセットが"参照"されます。 完全なデータセットにその他の値が検出された場合、列は許容される数値として処理されます。 それ以外の場合は、厳密な数値として処理されます。