邏輯迴歸預測應當無偏差。即:“預測平均值”應當約等於“觀察平均值”
預測偏差指的是這兩個平均值之間的差值。即:
預測偏差 = 預測平均值 - 資料集中相應標籤的平均值
注意:“預測偏差”與“偏差”(“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 協議》,轉載必須註明作者和本文連結