scikit-learn 概率校準(zhǔn)

2023-02-20 13:44 更新

在執(zhí)行分類時(shí),不僅要預(yù)測(cè)類標(biāo)簽,而且要獲得相應(yīng)標(biāo)簽的概率。這個(gè)概率給了你一些關(guān)于預(yù)測(cè)的信心。有些模型可以給出類概率的糟糕估計(jì),有些甚至不支持概率預(yù)測(cè)。校準(zhǔn)模塊允許您更好地校準(zhǔn)給定模型的概率,或者添加對(duì)概率預(yù)測(cè)的支持。

經(jīng)過良好校準(zhǔn)的分類器是概率分類器, 其可以將 predict_proba 方法的輸出直接解釋為 confidence level(置信度水平)。例如,一個(gè)經(jīng)過良好校準(zhǔn)的(二元的)分類器應(yīng)該對(duì)樣本進(jìn)行分類, 使得在給出一個(gè)接近 0.8 的 prediction_proba 值的樣本中, 大約 80% 實(shí)際上屬于正類。

1.16.1 校準(zhǔn)曲線

下面的圖比較了不同分類器的概率預(yù)測(cè)的校準(zhǔn)效果,使用 calibration_curve。x軸表示每個(gè)bin中的平均預(yù)測(cè)概率。 y軸是正數(shù)的分?jǐn)?shù),類別為正類別(在每個(gè) bin 中)的樣本比例。


LogisticRegression在默認(rèn)情況下返回經(jīng)過良好校準(zhǔn)的預(yù)測(cè),因?yàn)樗苯觾?yōu)化對(duì)數(shù)損失(log-loss)。相反,其他方法返回有偏概率;每種方法有不同的偏差:

GaussianNB 傾向于將概率推到0或1(注意直方圖中的計(jì)數(shù))。這主要是因?yàn)樗僭O(shè)在給定類的情況下,特征是條件獨(dú)立的,這種情況下的數(shù)據(jù)集不會(huì)包含2個(gè)冗余特征的

RandomForestClassifier 顯示了相反的行為:直方圖在大約0.2和0.9的概率下顯示峰值,而接近0或1的概率非常罕見。對(duì)此,Niculescu Mizil和Caruana給出了一個(gè)解釋 [1]:“對(duì)一組基本模型進(jìn)行平均預(yù)測(cè)的方法,如bagging and random forests ,很難在0和1附近進(jìn)行預(yù)測(cè),因?yàn)榛灸P椭械姆讲顣?huì)偏離應(yīng)接近0或1這些值的預(yù)測(cè)。由于預(yù)測(cè)僅限于區(qū)間[0,1],由方差引起的誤差往往是在0和1附近的單邊。例如,如果一個(gè)模型應(yīng)該對(duì)一個(gè)情況的預(yù)測(cè)應(yīng)該是p=0,那么bagging的唯一方法就是袋中所有的樹都預(yù)測(cè)0。如果我們將噪聲加到bagging中超過平均值的樹上,這種噪聲將導(dǎo)致一些樹在這種情況下預(yù)測(cè)大于0的值,從而使bagging集合的平均預(yù)測(cè)偏離0。我們?cè)陔S機(jī)森林中觀察到這種效應(yīng)最為強(qiáng)烈,因?yàn)殡S機(jī)森林訓(xùn)練的基層樹由于特征子集而具有較高的方差?!币虼?,校準(zhǔn)曲線也被稱為可靠性圖 (Wilks 1995 [2]) 顯示了一種典型的 sigmoid 形狀, 表明分類器可以更多地信任其 “直覺”, 并通常將接近 0 或 1 的概率返回。

線性支持向量分類(LinearSVC)顯示了更多的sigmoid曲線作為RandomForestClassifier,這是典型的最大邊距方法(比較Niculescu-Mizil and Caruana [1]),重點(diǎn)關(guān)注的是接近決策邊界的硬樣本(支持向量)。

1.16.2 校準(zhǔn)一個(gè)分類器

校準(zhǔn)一個(gè)分類器包括擬合一個(gè)回歸器(稱為校準(zhǔn)器),它將分類器的輸出(通過 predict or predict_proba)映射到[0,1]中的校準(zhǔn)概率。校準(zhǔn)器用表示給定樣本的分類器的輸出,并試圖預(yù)測(cè)

用于訓(xùn)練校準(zhǔn)器的樣品不應(yīng)用于訓(xùn)練目標(biāo)分類器。

1.16.3 使用方法

CalibratedClassifierCV是用來校準(zhǔn)分類器的:

CalibratedClassifierCV 使用交叉驗(yàn)證方法來擬合分類器和回歸器。對(duì)于每個(gè) k (trainset, testset)組合,在訓(xùn)練集上訓(xùn)練一個(gè)分類器,并使用它對(duì)測(cè)試集的預(yù)測(cè)來擬合一個(gè)回歸器。最后,我們得到了k(classifier, regressor) ,其中每個(gè)回歸器將其相應(yīng)分類器的輸出映射到[0,1]中。每個(gè)組在calibrated_classifiers_屬性中會(huì)被公開,其中每個(gè)條目是一個(gè)有predict_proba方法的校準(zhǔn)分類器,輸出校準(zhǔn)概率。predict_proba的輸出與calibrated_classifiers_列表中k個(gè)估計(jì)器的預(yù)測(cè)概率平均值相對(duì)應(yīng)。predict的輸出是概率最高的類。

用于校準(zhǔn)的回歸器取決于method參數(shù)?!癝igmoid”對(duì)應(yīng)于一種基于Platt的Logistic模型[3]的參數(shù)化方法,舉例 被建模為,其中是logistic函數(shù),是用極大似然擬合回歸器時(shí)要確定的實(shí)數(shù)。'isotonic'將代替一個(gè)非參數(shù)的isotonic回歸器,它輸出一個(gè)逐步不遞減的函數(shù)(見 sklearn.isotonic)。

已經(jīng)擬合好的分類器可以通過設(shè)置cv="prefit"來校準(zhǔn)。在這種情況下,數(shù)據(jù)只用于擬合回歸器。這取決于用戶確定用于擬合分類器的數(shù)據(jù)與用于擬合回歸器的數(shù)據(jù)是不相交的。

如果基本估計(jì)器支持多類預(yù)測(cè),那么CalibratedClassifierCV可以在多類設(shè)置中校準(zhǔn)概率。該分類器首先以one-vs-rest的方式[4]分別對(duì)每類進(jìn)行校準(zhǔn)。在預(yù)測(cè)概率時(shí),對(duì)每類的標(biāo)定概率分別進(jìn)行預(yù)測(cè)。由于這些概率之和不一定等于1,所以執(zhí)行一個(gè)后處理來標(biāo)準(zhǔn)化它們。

The sklearn.metrics.brier_score_loss 可以用來評(píng)估分類器的校準(zhǔn)的效果。

示例
概率校準(zhǔn)曲線
三分類的概率校準(zhǔn)
分類器的概率校準(zhǔn)
分類器校準(zhǔn)的比較

參考資料:

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


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)