【Scikit-Learn 中文文檔】概率校準 - 監督學習 - 用戶指南 | ApacheCN

中文文檔: http://sklearn.apachecn.org/cn/0.19.0/modules/calibration.html

英文文檔: http://sklearn.apachecn.org/en/0.19.0/modules/calibration.html

官方文檔: http://scikit-learn.org/stable/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(覺得不錯麻煩給個 Star,我們一直在努力)

貢獻者: https://github.com/apachecn/scikit-learn-doc-zh#貢獻者

關於我們: http://www.apachecn.org/organization/209.html




1.16. 概率校準

執行分類時, 您經常希望不僅可以預測類標籤, 還要獲得相應標籤的概率. 這個概率給你一些預測的信心. 一些模型可以給你貧乏的概率估計, 有些甚至不支持概率預測. 校準模塊可以讓您更好地校準給定模型的概率, 或添加對概率預測的支持.

精確校準的分類器是概率分類器, 其可以將 predict_proba 方法的輸出直接解釋爲 confidence level(置信度級別). 例如,一個經過良好校準的(二元的)分類器應該對樣本進行分類, 使得在給出一個接近 0.8 的 prediction_proba 值的樣本中, 大約 80% 實際上屬於正類. 以下圖表比較了校準不同分類器的概率預測的良好程度:

../_images/sphx_glr_plot_compare_calibration_0011.png

LogisticRegression 默認情況下返回良好的校準預測, 因爲它直接優化了 log-loss(對數損失)情況. 相反,其他方法返回 biased probabilities(偏倚概率); 每種方法有不同的偏差:

  • GaussianNB 往往將概率推到 0 或 1(注意直方圖中的計數). 這主要是因爲它假設特徵在給定類別的條件下是獨立的, 在該數據集中不包含 2 個冗餘特徵.
  • RandomForestClassifier 解釋了相反的行爲:直方圖在約 0.2 和 0.9 的概率時顯示峯值, 而接近 0 或 1 的概率非常罕見. Niculescu-Mizil 和 Caruana [4] 給出了一個解釋:”諸如 bagging 和 random forests(隨機森林)的方法, 從基本模型的平均預測中可能難以將預測置於 0 和 1 附近, 因爲基礎模型的變化會偏離預測值, 它們應該接近於零或偏離這些值, 因爲預測被限制在 [0,1] 的間隔, 由方差引起的誤差往往是靠近 0 和 1 的一邊, 例如,如果一個模型應該對於一個案例,預測 p = 0,bagging 可以實現的唯一方法是假設所有的 bagging 樹預測爲零. 如果我們在 bagging 樹上增加噪聲, 這種噪聲將導致一些樹預測大於 0 的值, 因此將 bagging 的平均預測從 0 移開. 我們用隨機森林最強烈地觀察到這種效應, 因爲用隨機森林訓練的 base-level 樹由於特徵劃分而具有相對較高的方差. 因此,校準曲線也被稱爲可靠性圖 (Wilks 1995 [5] _) 顯示了一種典型的 sigmoid 形狀, 表明分類器可以更多地信任其 “直覺”, 並通常將接近 0 或 1 的概率返回.
  • 線性支持向量分類 (LinearSVC) 顯示了作爲 RandomForestClassifier 更多的 Sigmoid 曲線, 這是經典的最大邊距方法 (compare Niculescu-Mizil and Caruana [4]), 其重點是靠近決策邊界的 hard samples(支持向量).

提供了執行概率預測校準的兩種方法: 基於 Platt 的 Sigmoid 模型的參數化方法和基於 isotonic regression(保序迴歸)的非參數方法 (sklearn.isotonic). 對於不用於模型擬合的新數據, 應進行概率校準. 類 CalibratedClassifierCV 使用交叉驗證生成器, 並對每個拆分模型參數對訓練樣本和測試樣本的校準進行估計. 然後對摺疊預測的概率進行平均. 已經安裝的分類器可以通過:class:CalibratedClassifierCV 傳遞參數 cv =”prefit” 這種方式進行校準. 在這種情況下, 用戶必須手動注意模型擬合和校準的數據是不相交的.

以下圖像展示了概率校準的好處. 第一個圖像顯示一個具有 2 個類和 3 個數據塊的數據集. 中間的數據塊包含每個類的隨機樣本. 此數據塊中樣本的概率應爲 0.5.

../_images/sphx_glr_plot_calibration_0011.png

以下圖像使用沒有校準的高斯樸素貝葉斯分類器, 使用 sigmoid 校準和非參數的等滲校準來顯示上述估計概率的數據. 可以觀察到, 非參數模型爲中間樣本提供最準確的概率估計, 即0.5.

../_images/sphx_glr_plot_calibration_0021.png

對具有20個特徵的100.000個樣本(其中一個用於模型擬合)進行二元分類的人造數據集進行以下實驗. 在 20個 特徵中,只有 2 個是信息量, 10 個是冗餘的. 該圖顯示了使用邏輯迴歸獲得的估計概率, 線性支持向量分類器(SVC)和具有 sigmoid 校準和 sigmoid 校準的線性 SVC. 校準性能使用 Brier score brier_score_loss 來計算, 請看下面的圖例(越銷越好).

../_images/sphx_glr_plot_calibration_curve_0021.png

這裏可以觀察到, 邏輯迴歸被很好地校準, 因爲其曲線幾乎是對角線. 線性 SVC 的校準曲線或可靠性圖具有 sigmoid 曲線, 這是一個典型的不夠自信的分類器. 在 LinearSVC 的情況下, 這是 hinge loss 的邊緣屬性引起的, 這使得模型集中在靠近決策邊界(支持向量)的 hard samples(硬樣本)上. 這兩種校準都可以解決這個問題, 併產生幾乎相同的結果. 下圖顯示了高斯樸素貝葉斯在相同數據上的校準曲線, 具有兩種校準, 也沒有校準.

../_images/sphx_glr_plot_calibration_curve_0011.png

可以看出, 高斯樸素貝葉斯的表現非常差, 但是以線性 SVC 的方式也是如此. 儘管線性 SVC 顯示了 sigmoid 校準曲線, 但高斯樸素貝葉斯校準曲線具有轉置的 sigmoid 結構. 這對於過分自信的分類器來說是非常經典的. 在這種情況下,分類器的過度自信是由違反樸素貝葉斯特徵獨立假設的冗餘特徵引起的.

用等滲迴歸法對高斯樸素貝葉斯概率的校準可以解決這個問題, 從幾乎對角線校準曲線可以看出. Sigmoid 校準也略微改善了 brier 評分, 儘管不如非參數等滲校準那樣強烈. 這是 sigmoid 校準的固有限制,其參數形式假定爲 sigmoid ,而不是轉置的 sigmoid 曲線. 然而, 非參數等滲校準模型沒有這樣強大的假設, 並且可以處理任何形狀, 只要有足夠的校準數據. 通常,在校準曲線爲 sigmoid 且校準數據有限的情況下, sigmoid 校準是優選的, 而對於非 sigmoid 校準曲線和大量數據可用於校準的情況,等滲校準是優選的.

CalibratedClassifierCV 也可以處理涉及兩個以上類的分類任務, 如果基本估計器可以這樣做的話. 在這種情況下, 分類器是以一對一的方式分別對每個類進行校準. 當預測未知數據的概率時, 分別預測每個類的校準概率. 由於這些概率並不總是一致, 因此執行後處理以使它們歸一化.

下一個圖像說明了 Sigmoid 校準如何改變 3 類分類問題的預測概率. 說明是標準的 2-simplex,其中三個角對應於三個類. 箭頭從未校準分類器預測的概率向量指向在保持驗證集上的 sigmoid 校準之後由同一分類器預測的概率向量. 顏色表示實例的真實類(red: class 1, green: class 2, blue: class 3).

../_images/sphx_glr_plot_calibration_multiclass_0001.png

基礎分類器是具有 25 個基本估計器(樹)的隨機森林分類器. 如果這個分類器對所有 800 個訓練數據點進行了訓練, 那麼它的預測過於自信, 從而導致了大量的對數損失. 校準在 600 個數據點上訓練的相同分類器, 其餘 200 個數據點上的 method =’sigmoid’ 減少了預測的置信度, 即將概率向量從單面的邊緣向中心移動:

../_images/sphx_glr_plot_calibration_multiclass_0011.png

該校準導致較低的 log-loss(對數損失). 請注意,替代方案是增加基準估計量的數量, 這將導致對數損失類似的減少.

參考:

  • Obtaining calibrated probability estimates from decision trees and naive Bayesian classifiers, B. Zadrozny & C. Elkan, ICML 2001
  • Transforming Classifier Scores into Accurate Multiclass Probability Estimates, B. Zadrozny & C. Elkan, (KDD 2002)
  • Probabilistic Outputs for Support Vector Machines and Comparisons to Regularized Likelihood Methods, J. Platt, (1999)
[4] Predicting Good Probabilities with Supervised Learning, A. Niculescu-Mizil & R. Caruana, ICML 2005
[5] On the combination of forecast probabilities for consecutive precipitation periods. Wea. Forecasting, 5, 640–650., Wilks, D. S., 1990a



中文文檔: http://sklearn.apachecn.org/cn/0.19.0/modules/calibration.html

英文文檔: http://sklearn.apachecn.org/en/0.19.0/modules/calibration.html

官方文檔: http://scikit-learn.org/stable/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(覺得不錯麻煩給個 Star,我們一直在努力)

貢獻者: https://github.com/apachecn/scikit-learn-doc-zh#貢獻者

關於我們: http://www.apachecn.org/organization/209.html

有興趣的們也可以和我們一起來維護,持續更新中 。。。

機器學習交流羣: 629470233

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章