Skip to content

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

モデリングプロセス

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

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

モデリングモード

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

DataRobotは、ツリーベースのモデル、ディープラーニングモデル、Support Vector machine(SVM)、Generalized Linear Model、異常検知モデル、テキストマイニングモデルなどをサポートしています。 以下に具体例を示します。

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

小さなデータセット

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

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

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

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

プロジェクトタイプ サンプルサイズ
AutoML 通常、データの64%または500MBのどちらか小さい方です。
OTV 100% of each backtest.
時系列 Maximum training size for each backtest defined in the date/time partitioning.

With this shortened version of the full Autopilot, DataRobot selects models to run based on a variety of criteria, including target and performance metric, but as its name suggests, chooses only models with relatively short training runtimes to support quicker experimentation. The specific number of Quick models run varies by project and target type (e.g., some blueprints are only available for a specific target/target distribution). The Average blender, when enabled, is created from the top two models. クイックモードでの実行効率を最大限に高めるために、DataRobotはDataRobotで削減した特徴量 セットを自動的に作成しますが、推奨モデルを(またはどのモデルも)自動的に適合させることはありません(特徴量が削減されたセットを適合させるには、モデルの再トレーニングが必要です)。

The steps involved in Quick mode are dependent on whether the Recommend and prepare a model for deployment is checked.

Option state アクション
Checked
  • Run Quick mode at 64%
  • Create a reduced feature list (if feature list can be reduced).
  • Automatically retrain the recommended model at 100% (using the feature list of the 64% model).
Unchecked Run Quick mode at 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は、各特徴量のデータ(特徴量)型も検出します。サポートされているデータ型は次のとおりです。

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

有用性

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

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

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

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

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

自動特徴量の変換

特徴量エンジニアリングは、モデリングプロセスの重要な部分です。 開始を押すと、DataRobotはモデルの精度を高めるために、指定されたデータセットに対して自動特徴量エンジニアリングを実行して派生した特徴量を作成します。 各特徴量タイプのモデリング中にDataRobotが実行する特徴量エンジニアリングタスクのリストについては、以下の表を参照してください。

特徴量タイプ 自動変換
数値とカテゴリー
  • 欠損値代入(中央値、任意)
  • 標準化
  • 比率の検出
  • 差異の検出
  • リジット変換
  • 2番目のモデルを使用したDataRobotスマートビニング
  • 主成分分析
  • k-meansクラスタリング
  • ワンホットエンコーディング
  • オリジナルエンコーディング
  • 信頼間隔
  • カテゴリーカウント
  • Variational autoencoder(変分オートエンコーダー)
  • 数値のカスタム特徴量エンジニアリング
日付
  • 年の月
  • 曜日
  • 年間通算日
  • 月の日
  • 時間
テキスト
  • 文字/単語のngram
  • 事前トレーニング済みのtinyBERTフィーチャライザー
  • ストップワードの削除
  • スピーチのタグ付け/削除の一部
  • TF-IDFスケーリング(オプションのサブリニアスケーリングおよびbinormal separationスケーリング)
  • ビッグデータのハッシュベクトライザー
  • SVD前処理
  • テキスト列のペア間のコサイン類似度(2つ以上のテキスト列を含むデータセット)
  • 英語、日本語、フランス語、韓国語、スペイン語、中国語、ポルトガル語など、複数の言語のサポート
画像 DataRobotは、フィーチャライザーを使用して画像を数値に変換します:
  • Resnet50
  • Xception
  • Squeezenet
  • Efficientnet
  • PreResnet
  • Darknet
  • MobileNet

    • DataRobotでは、これらのフィーチャライザーをファインチューニングすることもできます。
地理空間 DataRobotはいくつかの手法を使用して、入力データセットから空間ラグ特徴量を自動的に派生します:
  • 空間ラグ :さまざまな空間ラグと近傍サイズで数値特徴量の平均近傍値を計算するためのk近傍法アプローチ。
  • 空間Kernel :空間Kernel近傍法を使用して空間依存構造を特徴付けます。 この手法は、距離による重み付けが適用されたさまざまなKernelサイズを使用して、すべての数値特徴量の空間依存構造を特徴付けます。
また、DataRobotは、空間関連付けのローカルインジケーターを使用してローカル自己相関特徴量を派生し、入力データセット全体のコンテキスト内で空間類似性のホットスポットとコールドスポットをキャプチャします。
DataRobotは、以下に示すジオメトリプロパティの特徴量を派生させます:
  • MultiPoints: Centroid
  • Lines/MultiLines: 重心、長さ、最小外接長方形領域
  • Polygons/MultiPolygons: 重心、外周、領域、最小外接長方形領域

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

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

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

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

  3. 言語は、「日本語・中国語・韓国語」と「英語およびその他の言語(「英語+」)」に分類されます。 次のチェック項目のうち少なくとも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
  • 1つ以上の空白文字や空白のセルも欠損値として扱われます。

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

備考

欠損値代入方法は、トレーニング時に固定されます。 トレーニング中に設定された中央値または任意の値のいずれかが予測時に提供されます。

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

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

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

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

数値列

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

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

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

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

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

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

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


更新しました April 19, 2023
Back to top