資料與特徵偵錯

品質不佳的資料會大幅影響您的模型成效。在輸入時偵測出品質不佳的資料會較為簡單,而不是在模型預測不良後猜測是否存在。請按照本節的建議監控資料。

使用資料結構定義驗證輸入資料

如要監控資料,應持續編寫資料必須符合的規則,持續檢查預期統計資料。這組規則稱為「資料結構定義」。請按照下列步驟定義資料結構定義:

  1. 如果是功能資料,請參閱範圍與分佈情形。針對類別功能,請瞭解可能的值組合。
  2. 將您在編碼中指定的規則編碼。規則範例:

    • 確保使用者提交的評分一律介於 1 至 5 之間。
    • 檢查「英文」最常出現的位置 (適用於英文文字功能)。
    • 確認類別特徵的值是來自固定集合。
  3. 依據資料結構定義測試資料。您的結構定義應該會擷取資料錯誤,例如:

    • 異常狀況
    • 類別變數的預期值
    • 未預期的資料分佈

確認分割品質良好

您的測試和訓練分割必須和輸入資料相同。如果測試和訓練分割在統計上不同,則訓練資料就無法協助預測測試資料。如要瞭解如何取樣及分割資料,請參閱機器學習「資料準備和功能工程」課程的取樣和分割資料一節。

監控分割的統計屬性。如果屬性多樣化,請標記。此外,請測試每個分割中的範例比例是否保持不變。舉例來說,如果資料分割為 80:20,這個比例就不應改變。

測試工程資料

您的原始資料可能有效,但模型只會看到經過工程的特徵資料。由於工程資料與原始輸入資料看起來十分不同,因此您必須個別檢查工程資料。根據您對工程資料的瞭解,撰寫單元測試。例如,您可以編寫單元測試來檢查下列條件:

  • 所有數值都會縮放,例如介於 0 至 1 之間。
  • One-hot 編碼向量僅包含一個 1 和 N-1。
  • 缺少的資料會以平均值或預設值取代。
  • 轉換之後的資料分佈符合預期。舉例來說,如果您使用 Z 分數進行正規化,則 Z 分數的平均值為 0。
  • 處理離群值,例如縮放或剪輯。