データと特徴のデバッグ

低品質のデータは、モデルのパフォーマンスに大きな影響を与えます。モデルが不適切に予測した後、入力上の存在を推測するよりも、入力時に低品質のデータを検出する方がはるかに簡単です。このセクションのアドバイスに従ってデータをモニタリングします。

データスキーマを使用して入力データを検証する

データをモニタリングするには、データが満たす必要があるルールを記述して、予想される統計値と継続的にデータをチェックする必要があります。このようなルールの集合を「データスキーマ」と呼びます。次の手順でデータスキーマを定義します。

  1. 特徴データについては、範囲と分布を理解します。カテゴリ特徴の場合は、取り得る値のセットを理解します。
  2. スキーマで定義されたルールに理解度をエンコードする。ルールの例を次に示します。

    • ユーザーが投稿した評価は常に 1 ~ 5 の範囲で表示します。
    • 「the」が頻繁に出現することを確認します(英語のテキスト機能)。
    • カテゴリ特徴が固定セットの値を持つことを確認します。
  3. データスキーマに対してデータをテストします。スキーマは、次のようなデータエラーをキャッチする必要があります。

    • anomalies
    • カテゴリ変数の予期しない値
    • 予期しないデータ分布

分割の品質を良好に保つ

テスト分割とトレーニング分割は、入力データを均等に表す必要があります。テスト分割とトレーニング分割が統計的に異なる場合、トレーニング データはテストデータを予測できません。データをサンプリングして分割する方法については、データの準備と特徴量エンジニアリングのコースのデータのサンプリングと分割のセクションをご覧ください。

分割の統計プロパティをモニタリングします。プロパティが異なっている場合は、フラグを立ててください。さらに、各分割のサンプルの割合が一定に保たれるかテストします。たとえば、データが 80:20 で分割されている場合、この比率は変わりません。

エンジニアリング データのテスト

元データは有効であっても、モデルには設計済み特徴データのみが表示されます。エンジニアリングされたデータは、元の入力データとは大きく異なるため、エンジニアリングされたデータを別途確認する必要があります。エンジニアリングしたデータの理解に基づいて、単体テストを作成します。たとえば、次の条件をチェックする単体テストを作成できます。

  • 数値特徴は、すべて 0 から 1 の間でスケーリングされます。
  • ワンホット エンコードされたベクトルには、1 つの 0 と N-1 のゼロが 1 つだけ含まれます。
  • 欠損データは平均値またはデフォルト値に置き換えられます。
  • 変換後のデータ分布は想定どおりです。たとえば、Z スコアを使用して正規化した場合、Z スコアの平均は 0 になります。
  • 外れ値は、スケーリングやクリッピングなどによって処理されます。