Logistic
為什麼使用 Platt 標度法?
為了將置信水平校準為監督學習中的概率(例如,使用過採樣數據從 SVM 或決策樹映射置信度),一種方法是使用 Platt 的縮放(例如,從 Boosting 獲得校準的概率)。
基本上一個使用邏輯回歸來映射到. 因變量是真實標籤,預測變量是來自未校準模型的置信度。我不明白的是使用 1 或 0 以外的目標變量。該方法要求創建新的“標籤”:
為了避免對 sigmoid 訓練集的過度擬合,使用了樣本外模型。如果有正面例子和訓練集中的負樣本,對於每個訓練樣本 Platt Calibration 使用目標值和(而不是分別為 1 和 0),其中
我不明白這個新目標有什麼用處。邏輯回歸不是簡單地將因變量視為二元標籤(無論給出什麼標籤)?
更新:
我發現在 SAS 中將依賴項從其他東西恢復到相同的模型(使用
PROC GENMOD
)。也許是我的錯誤,或者是 SAS 缺乏多功能性。我能夠在 R 中更改模型。例如:data(ToothGrowth) attach(ToothGrowth) # 1/0 coding dep <- ifelse(supp == "VC", 1, 0) OneZeroModel <- glm(dep~len, family=binomial) OneZeroModel predict(OneZeroModel) # Platt coding dep2 <- ifelse(supp == "VC", 31/32, 1/32) plattCodeModel <- glm(dep2~len, family=binomial) plattCodeModel predict(plattCodeModel) compare <- cbind(predict(OneZeroModel), predict(plattCodeModel)) plot(predict(OneZeroModel), predict(plattCodeModel))
我建議查看邏輯回歸的維基百科頁面。它指出,在二元因變量的情況下,邏輯回歸將預測變量映射到因變量的發生概率。在沒有任何轉換的情況下,用於訓練模型的概率為 1(如果 y 在訓練集中為正數)或 0(如果 y 為負數)。
所以:擬合時不要使用絕對值 1 表示正類,而使用 0 表示負類(在哪裡是 SVM 的未校準輸出),Platt 建議使用上述轉換來允許相反的標籤以一定的概率出現。通過這種方式,引入了一些正則化。當數據集的大小達到無窮大時,將變為 1 並且將變為零。詳情請參閱Platt 的原始論文。