データ品質チェック¶
このセクションでは、潜在的なデータ品質の問題についてDataRobotが実行するチェックについて詳しく説明します。 データ品質チェックロジックに、この情報のサマリーがあります。
データ品質チェックロジックのサマリー¶
次の表は、各データ品質チェックの背後にあるロジックのサマリーを示します。
チェック / 実行 | 検出ロジック | 取り扱い | レポート先 |
---|---|---|---|
外れ値 / EDA2 | 上田のアルゴリズム | 線形:ブループリントでフラグが追加された特徴量 ツリー:自動的に処理 |
データ > ヒストグラム |
多カテゴリー形式のエラー / EDA1 | 次の3つの条件のいずれかを満たします。
|
多カテゴリーとして特徴量が識別されていない | データ品質評価のログ |
インライア / EDA1 | 値は外れ値ではなく、頻度が外れ値 | ブループリントでフラグが追加された特徴量 | データ > 頻出値 |
過剰なゼロ / EDA1 | 頻度が外れ値で、値は0 | ブループリントでフラグが追加された特徴量 | データ > 頻出値 |
偽装欠損値 / EDA1 | 次の3つの条件を満たします。
|
補完された中央値、ブループリントのフラグ特徴量 | データ > 頻出値 |
ターゲットリーケージ / EDA2 | 正規化ジニ指標を使用して計算された各特徴量の有用性スコア。 レポートのしきい値レベルは、中程度のリスク(0.85)または高リスク(0.975)です。 | オートパイロットから除外された高リスクのリークした特徴量(「リーケージ削除済み」特徴量セットを使用) | データページ、問題のタイプでフィルタ(オプション) |
欠損画像 / EDA1 | 空のセル、欠損ファイル、破損したリンク | リンクは自動的に修正されます | データ品質評価のログ |
補完リーケージ / EDA2(特徴量前の派生) | KA特徴量に適用されるターゲットとしてis_imputed を持つターゲットリーケージ。 データセットに適用される時系列データ準備を含むプロジェクトについてのみチェックされます。 |
KA特徴量から特徴量を削除 | データページ、問題のタイプでフィルタ(オプション) |
事前に派生したラグ特徴量 / EDA2 | target(t-1)、target(t-2) ... target(t-8)に等しい特徴量 | 派生から除外 | データページ、問題のタイプでフィルタ(オプション) |
一貫性のないギャップ / EDA2 | [不規則な時間ステップ][時間ステップ](../../modeling/time/ts-flow-overview.md#time-steps) | モデルは行ベースモードで実行 | 時間認識モデリング設定のメッセージ |
先行・後続するゼロ / EDA2 | 0で開始/終了する系列の場合、連続する0の確率を計算します。確率が5%未満の系列にフラグを設定 | ユーザー修正 | データページ、問題のタイプでフィルタ(オプション) |
まれな負の値 / EDA1 | 値の2%未満が負の値 | ユーザー修正 | 警告メッセージ |
検定 / EDA1の新しい系列 | 系列の20%以上がトレーニングデータにない | ユーザー修正 | 情報メッセージ |
外れ値¶
サンプル平均の一番端にある観測ポイントである外れ値は、データの変動性の結果であることがあります。 DataRobotは、外れ値を処理するブループリントを自動的に作成します。 各ブループリントでは、使用されているモデリングアルゴリズムに応じて、外れ値の処理に適切な方法が適用されます。 線形モデルの場合、DataRobotはブループリントの中にバイナリ列を追加し、外れ値のある行にフラグを立てます。 ツリーモデルは外れ値を自動的に処理します。
多カテゴリー形式エラー¶
多ラベルモデリングは、各行に任意の数のラベルを含めることができる分類タスクです。 多ラベルモデリングに使用できるトレーニングデータセットを作成するには、多カテゴリー特徴量の要件に従う必要があります。
DataRobotは、無作為に抽出した100行から、多カテゴリーに分類される可能性のあるすべての特徴量を確認し、適切な多カテゴリー形式を持つ値が少なくとも1つあるかどうかを調べます。 見つかった場合、各行が多カテゴリー形式に対応するかどうかを確認します。 対応していない行が1つでもあれば、その特徴量について「多カテゴリー形式エラー」が報告されます。 チェックのロジックは次の通りです。
- 値は有効なJSONである必要があります。
- 値は空ではない文字列のリストを表す必要があります。
データ品質ツールにエラーの選択が報告されます。 特徴量に多カテゴリー形式エラーがある場合、多カテゴリーとして検出されません。 エラーの詳細については、評価ログを確認してください。
インライア¶
インライアとは、ある特徴量の一般的な値の範囲を超えておらず、下回ってもいないが、付近の値と比べて異常に頻度が高い値を指します(たとえば、本当の郵便番号を公開したくない人が郵便番号の値として入力した55555)。 これを処理しないと、モデルのパフォーマンスに悪影響が生じる可能性があります。
特徴量について記録された各値について、その特徴量の値の頻度が計算され、結果の配列が作成されます。 インライア候補は、その配列の外れ値です。 False Positivesを削減するために、DataRobotで別の条件を適用し、以下の値だけをインライアとして保持します。
frequency > 50 * (number of non-missing rows in the feature) / (number of unique non-missing values in the feature)
このアルゴリズムを使用すると、ヒストグラムプロットでインライアが見つかりにくいような値の数が多い場合であっても、多くの一意の値を含む数値特徴量でのインライア検出が可能になります。 これは、一意の値の数が少ない特徴量の保守的なアプローチです。 さらに、一意の値が50個未満の特徴量のインライアは検出されません。
バイナリ列がブループリント内に自動的に追加され、行にインライアでフラグが設定されます。 これにより、異常値の背後にある可能性のあるパターンをモデルに組み込むことができます。 追加のユーザー操作は必要ありません。
過剰なゼロ¶
列で繰り返されるゼロは通常の値である可能性がありますが、欠損値を表すこともあります。 たとえば、項目の需要がないため、または在庫がないために、特定のアイテムの売り上げがゼロになることがあります。 0を使用して欠損値を補完することは最適ではないことが多く、モデルの精度が低下する可能性があります。
値0の頻度が外れ値である場合、インライアで説明されている配列を使用して、その特徴量にフラグが設定されます。
バイナリ列がブループリント内に自動的に追加され、行に余剰のゼロでフラグが設定されます。 これにより、異常値の背後にある可能性のあるパターンをモデルに組み込むことができます。 追加のユーザー操作は必要ありません。
偽装欠損値¶
「偽装欠損値」は、値(-999
など)を挿入して、本来なら欠損値となるものをエンコードする状況を表す用語です。 機械学習アルゴリズムでは偽装欠損値が自動的に処理されないので、これらの値を処理しないと、モデルのパフォーマンスに悪影響が生じる可能性があります。
DataRobotは、他の値よりも高い頻度で繰り返される値と、異常値として検出される値の両方を検出します。 偽装欠損値と見なされるには、繰り返される外れ値が次のヒューリスティックのいずれかを満たす必要があります。
- 値のすべての数字が同じで、少なくとも2回繰り返される(例:99、88、9999)。
1
で始まり、その後に2つ以上のゼロが続く。- 値が-1、98、または97に等しい。
偽装欠損値は標準の欠損値と同じ方法で処理されます(中央値が補完されて挿入され、補完が発生した行にバイナリ列によってフラグが設定されます)。
ターゲットリーケージ¶
予測モデリングの目的は、トレーニングの際に未知の新しいデータを正確に予測するモデルを開発することです。 手元にないデータ上でモデルを評価することはできないので、DataRobotでは、評価に使用する履歴データセットの部分を除外することによって未知のデータ上のモデルパフォーマンスが評価されます。
しかし、データセットがイベントが発生するまで知られていない情報を使用してターゲットリーケージを引き起こす場合、問題が発生する可能性があります。 ターゲットリーケージとは、予測時に値を知ることができない特徴量を指します(たとえば、トレーニングデータセットの「解約理由」の値を使用して顧客が解約するかどうかを予測するなど)。 モデルの特徴量セットの特徴量を含めると、予測に不適切な影響が生じ、過度に楽観的なモデルが生成されることがあります。
DataRobotは、EDA2の実行時に、ターゲットに関して各特徴量のACE有用性スコア(正規化ジニ指標)を計算して、ターゲットリーケージをチェックします。 中程度のリスク(0.85)のしきい値を超える特徴量にはフラグが立てられます。高リスク(0.975)のしきい値を超える特徴量は削除されます。
リーケージ削除の高度なオプションが有効な場合(デフォルト)、問題のある高リスクの列を削除する特徴量セット(有益な特徴量からリーケージを除外)が自動的に作成されます。 中リスクの特徴量には、追加の調査を促すアラートを示す黄色の警告が表示されます。
リーケージが検出されて有用な特徴量からリーケージを除外が作成された後、高度なオプション(「ターゲットリーケージを削除した特徴量セットでオートパイロットを実行する」設定)に従った処理が行われます。 有効な場合(デフォルト):
- クイック、フル、または包括的なオートパイロット:ユーザー作成のセットを指定した場合を除き、新しく作成された特徴量セットが実行されます。 その他のデフォルトセットの1つで実行するには、初回の構築の後、選択したリストでモデルを再構築します。
- 手動モード:セットが使用可能になり、ユーザーの判断でリポジトリからセットを適用できます。
- 初回ビルドの後にモデルを追加すると、ターゲットリーケージのリストが使用可能になります。
無効化されている場合、DataRobotは上記を(潜在的なターゲットリーケージが残っている)有用な特徴量または指定したユーザー作成リストに適用します。
補完リーケージ¶
時系列データ準備ツールは、元のデータセットで欠損している日付のターゲットと特徴量値を補完できます。 データ品質チェックが、補完された特徴量が補完されたターゲットをリークしないように確認します。 これは、事前に既知(KA)の特徴量に対してのみ潜在的な問題となります。特徴量値はDataRobotが予測しているターゲット値との平行性があるからです。
DataRobotは二値分類ターゲットis_imputed = (aggregated_row_count == 0)
を導き出します。 時系列特徴量が派生される前に、ターゲットとしてis_imputed
を使用して、各KA特徴量にターゲットリーケージチェックを適用します。
補完リーケージのリスクが高い、または中程度であると識別された特徴量は、KA特徴量のセットから削除されます。 その後、時系列特徴量の派生が通常通りに進行します。
事前に派生したラグ特徴量¶
時系列プロジェクトが開始されると、ラグやローリング統計などの日付/時刻関連の複数の機能が自動的に作成されます。 しかし、時間ベースの特徴量の自動作成が望ましくない場合もあります(独自の時間志向の特徴量を抽出しており、その特徴量は追加の派生処理が不要な場合など)。 この場合、これらの特徴量に派生から除外または事前に既知としてフラグを設定する必要があります。 「ラグ特徴量」チェックは、フラグを設定すべき特徴量にフラグが必要なかったかどうか(列の重複につながります)を検出するのに役立ちます。
DataRobotでは、それぞれの非ターゲット特徴量は、target(t-1)、target(t-2) ... target(t-8)と比較します。
ラグとして検出されたすべての特徴量は、「二重派生」を防ぐために、派生から除外されるように自動的に設定されます。ベストプラクティスとして、アップロード済みの他の特徴量、およびすべての事前に派生した特徴量を「派生から除外」または「事前に既知」として設定することをお勧めします(該当する場合)。
不規則なタイムステップ¶
「一貫性のないギャップ」チェックは、時系列モデルに不規則な時間ステップが含まれる場合にフラグが設定されます。 これらのギャップは不正確なローリング統計の原因になります。 次にいくつかの例を示します。
-
時系列プロジェクトの取引データは集計されず、元の取引データが使用されます。
-
取引データは日次売上データセットに集約され、売上ゼロの日付はデータセットに追加されません。
DataRobotでは、予期されたタイムスタンプが欠落していることが検出されます。
ギャップが一貫する可能性があることを理解することが重要です(毎週末の売上がない場合など)。 DataRobotでは、それを考慮して、一貫性のないギャップ、または予期しないギャップだけが検出されます。
これらを含めることはローリング統計に適していないため、予想されるタイムステップの20%以上が欠落している場合、プロジェクトは行ベースモード(時間外(OTV)検定を伴う通常のプロジェクト)で実行されます。 これが意図した動作でない場合は、データセットを修正してプロジェクトを再作成してください。
先行または後続ゼロ¶
過剰なゼロと同様に、このチェックは、欠損値を埋めるために使用されるゼロを検出するために機能します。 このチェックでは、シリーズの最初または最後の欠損値を埋めるために0を使用して、他よりも後に開始または終了した特別なケースで機能します。
DataRobotは、各シリーズのゼロの合計レートを推定し、統計テストを実行して、ゼロの自然なシーケンスとは見なせない連続ゼロの数を識別します。
これが意図した動作でない場合は、データセットを修正してプロジェクトを再作成してください。
まれな負の値¶
ターゲットに過剰なゼロがあるデータは、ゼロ過剰ケースの特別な2ステージのモデルでモデル化できます。 このモデルは、ターゲットの最小値が0の場合にのみ使用できます(1つでも負の値がある場合は使用できません)。 たとえば、これは、売上データで売上とともに返品が記録された場合に発生する可能性があります。 ゼロ過剰モデリングおよびその他の追加のブループリントを有効にすることが目的である場合、このデータ品質チェックは、2段階モデルが適切な場合に負の値を特定し、ターゲットを修正するよう求める警告を提供します。
2%未満の値が負であることが検出された場合、プロジェクトはゼロ過剰として扱われます。
DataRobotに警告メッセージが表示されます。
検定の新しい系列¶
プロジェクト設定(トレーニングと検定のパーティションサイズ)によっては、新しい系列がデータセットの最後に導入され、トレーニングデータの一部にならないように複数系列プロジェクトが構成されている場合があります。 たとえば、これは新しい店舗を開くときに発生する可能性があります。 このチェックでは、新しい系列がトレーニングデータ内にないことを示す情報メッセージを返します。
系列の20%以上が新規であることが検出された場合(トレーニングデータに含まれていない場合)。
DataRobotに情報メッセージが表示されます。
欠損画像¶
画像データセットを使用してVisual Artificial Intelligence(AI)プロジェクトを構築する場合、CSVには、提供されたZIPアーカイブに含まれる画像のパスが含まれます。 これらのパスは、欠損している場合、存在しない画像を参照している場合、または無効な画像を参照している場合があります。 行に可変数の画像が含まれている場合や、その行と列の画像がない場合があるので、欠損パスは必ずしも問題ではありません。 ログをプレビューをクリックすると、より詳細なビューが表示されます。
この例では、行1は、アップロードされたファイル(1)に存在しない参照されたファイル名をレポートします。 行2は、行に画像パスがないことをレポートします(2)。 ログには、問題の性質と問題が発生した行の両方が含まれます。 ログには最大100行のプレビューが表示されます。ダウンロードを選択すると、ログファイルがエクスポートされ、追加の行を表示できます。
DataRobotは、提供された各画像パスをチェックして、存在する有効な画像を参照していることを確認します。
パスが解決できない場合、DataRobotは目的の画像を見つけて、問題のあるパスでの置換を試みます。 自動修正が不可能な場合は、問題のあるパスが削除されます。 画像が無効な場合、パスは削除されます。
すべての欠損画像(自動修正されても解決できないパス)および無効な画像がログに記録され、表示可能になります。