機器學習之分類:預測偏差

Lois發表於2020-06-28

邏輯迴歸預測應當無偏差。即:“預測平均值”應當約等於“觀察平均值”
預測偏差指的是這兩個平均值之間的差值。即:
預測偏差 = 預測平均值 - 資料集中相應標籤的平均值
注意:“預測偏差”與“偏差”(“wx + b”中的“b”)不是一回事。
如果出現非常高的非零預測偏差,則說明模型某處存在錯誤,因為這表明模型對正類別標籤的出現頻率預測有誤。
例如,假設我們知道,所有電子郵件中平均有 1% 的郵件是垃圾郵件。如果我們對某一封給定電子郵件一無所知,則預測它是垃圾郵件的可能性為 1%。同樣,一個出色的垃圾郵件模型應該預測到電子郵件平均有 1% 的可能性是垃圾郵件。(換言之,如果我們計算單個電子郵件是垃圾郵件的預測可能性的平均值,則結果應該是 1%。)然而,如果該模型預測電子郵件是垃圾郵件的平均可能性為 20%,那麼我們可以得出結論,該模型出現了預測偏差。
造成預測偏差的可能原因包括:

  • 特徵集不完整
  • 資料集混亂
  • 模型實現流水線中有錯誤?
  • 訓練樣本有偏差
  • 正則化過強
    您可能會透過對學習模型進行後期處理來糾正預測偏差,即透過新增校準層來調整模型的輸出,從而減小預測偏差值。例如,如果您的模型存在 3%以上的偏差,則可以新增一個校準層,將平均預測偏差降低 3%。但是,新增校準層並非良策,具體原因如下:
  • 您修復的是症狀,而不是原因。
  • 您建立了一個更脆弱的系統,並且必須持續更新。
    如果可能的話,請避免新增校準層。使用校準層的專案往往會對其產生依賴 — 使用校準層來修復模型的所有錯誤。最終,維護校準層可能會令人苦不堪言。
    注意:出色模型的偏差通常接近於零。即便如此,預測偏差低並不能證明您的模型比較出色。特別糟糕的模型的預測偏差也有可能為零。例如,只能預測所有樣本平均值的模型是糟糕的模型,儘管其預測偏差為零。

    分桶偏差和預測偏差

    邏輯迴歸可預測 0 到 1 之間的值。不過,所有帶標籤樣本都正好是 0 (例如,0 表示“非垃圾郵件”)或 1 (例如,1 表示“垃圾郵件”)。因此,在檢查預測偏差時,您無法僅根據一個樣本準確地確定預測偏差;您必須在“一大桶”樣本中檢查預測偏差。也就是說,只有將足夠的樣本組合在一起以便能夠比較預測值(例如 0.392)與觀察值(例如 0.394),邏輯迴歸的預測偏差才有意義。
    您可以透過以下方式構建桶:
  • 以線性方式分解目標預測
  • 構建分位數。
    請檢視以下某個特定模型的校準曲線。每個點表示包含 1000 個值的分桶。兩個軸具有以下含義:
  • x 軸表示模型針對該桶預測的平均值。
  • y 軸表示該桶的資料集中的實際平均值。
    兩個軸均採用對數尺度。

    圖 8.預測偏差曲線(對數尺度)

    為什麼只有模型的某些部分所做的預測如此糟糕?以下是幾種可能性:
  • 訓練集不能充分表示資料空間的某些子集。
  • 資料集的某些子集比其他子集更混亂。
  • 該模型過於正則化。(不妨減小 lambda 的值)
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章