低品質のデータは、モデルのパフォーマンスに大きな影響を与えます。モデルが不適切に予測した後、入力上の存在を推測するよりも、入力時に低品質のデータを検出する方がはるかに簡単です。このセクションのアドバイスに従ってデータをモニタリングします。
データスキーマを使用して入力データを検証する
データをモニタリングするには、データが満たす必要があるルールを記述して、予想される統計値と継続的にデータをチェックする必要があります。このようなルールの集合を「データスキーマ」と呼びます。次の手順でデータスキーマを定義します。
- 特徴データについては、範囲と分布を理解します。カテゴリ特徴の場合は、取り得る値のセットを理解します。
スキーマで定義されたルールに理解度をエンコードする。ルールの例を次に示します。
- ユーザーが投稿した評価は常に 1 ~ 5 の範囲で表示します。
- 「the」が頻繁に出現することを確認します(英語のテキスト機能)。
- カテゴリ特徴が固定セットの値を持つことを確認します。
データスキーマに対してデータをテストします。スキーマは、次のようなデータエラーをキャッチする必要があります。
- anomalies
- カテゴリ変数の予期しない値
- 予期しないデータ分布
分割の品質を良好に保つ
テスト分割とトレーニング分割は、入力データを均等に表す必要があります。テスト分割とトレーニング分割が統計的に異なる場合、トレーニング データはテストデータを予測できません。データをサンプリングして分割する方法については、データの準備と特徴量エンジニアリングのコースのデータのサンプリングと分割のセクションをご覧ください。
分割の統計プロパティをモニタリングします。プロパティが異なっている場合は、フラグを立ててください。さらに、各分割のサンプルの割合が一定に保たれるかテストします。たとえば、データが 80:20 で分割されている場合、この比率は変わりません。
エンジニアリング データのテスト
元データは有効であっても、モデルには設計済み特徴データのみが表示されます。エンジニアリングされたデータは、元の入力データとは大きく異なるため、エンジニアリングされたデータを別途確認する必要があります。エンジニアリングしたデータの理解に基づいて、単体テストを作成します。たとえば、次の条件をチェックする単体テストを作成できます。
- 数値特徴は、すべて 0 から 1 の間でスケーリングされます。
- ワンホット エンコードされたベクトルには、1 つの 0 と N-1 のゼロが 1 つだけ含まれます。
- 欠損データは平均値またはデフォルト値に置き換えられます。
- 変換後のデータ分布は想定どおりです。たとえば、Z スコアを使用して正規化した場合、Z スコアの平均は 0 になります。
- 外れ値は、スケーリングやクリッピングなどによって処理されます。