1.16 概率校準?
在執行分類時,不僅要預測類標簽,而且要獲得相應標簽的概率。這個概率給了你一些關于預測的信心。有些模型可以給出類概率的糟糕估計,有些甚至不支持概率預測。校準模塊允許您更好地校準給定模型的概率,或者添加對概率預測的支持。
經過良好校準的分類器是概率分類器, 其可以將 predict_proba 方法的輸出直接解釋為 confidence level(置信度水平)。例如,一個經過良好校準的(二元的)分類器應該對樣本進行分類, 使得在給出一個接近 0.8 的 prediction_proba 值的樣本中, 大約 80% 實際上屬于正類。
1.16.1 校準曲線
下面的圖比較了不同分類器的概率預測的校準效果,使用 calibration_curve
。x軸表示每個bin中的平均預測概率。 y軸是正數的分數,類別為正類別(在每個 bin 中)的樣本比例。
LogisticRegression
在默認情況下返回經過良好校準的預測,因為它直接優化對數損失(log-loss)。相反,其他方法返回有偏概率;每種方法有不同的偏差:
GaussianNB
傾向于將概率推到0或1(注意直方圖中的計數)。這主要是因為它假設在給定類的情況下,特征是條件獨立的,這種情況下的數據集不會包含2個冗余特征的
RandomForestClassifier
顯示了相反的行為:直方圖在大約0.2和0.9的概率下顯示峰值,而接近0或1的概率非常罕見。對此,Niculescu Mizil和Caruana給出了一個解釋 [1]:“對一組基本模型進行平均預測的方法,如bagging and random forests ,很難在0和1附近進行預測,因為基本模型中的方差會偏離應接近0或1這些值的預測。由于預測僅限于區間[0,1],由方差引起的誤差往往是在0和1附近的單邊。例如,如果一個模型應該對一個情況的預測應該是p=0,那么bagging的唯一方法就是袋中所有的樹都預測0。如果我們將噪聲加到bagging中超過平均值的樹上,這種噪聲將導致一些樹在這種情況下預測大于0的值,從而使bagging集合的平均預測偏離0。我們在隨機森林中觀察到這種效應最為強烈,因為隨機森林訓練的基層樹由于特征子集而具有較高的方差。”因此,校準曲線也被稱為可靠性圖 (Wilks 1995 [2]) 顯示了一種典型的 sigmoid 形狀, 表明分類器可以更多地信任其 “直覺”, 并通常將接近 0 或 1 的概率返回。
線性支持向量分類(LinearSVC
)顯示了更多的sigmoid曲線作為RandomForestClassifier,這是典型的最大邊距方法(比較Niculescu-Mizil and Caruana [1]),重點關注的是接近決策邊界的硬樣本(支持向量)。
1.16.2 校準一個分類器
校準一個分類器包括擬合一個回歸器(稱為校準器),它將分類器的輸出(通過 predict or predict_proba)映射到[0,1]中的校準概率。校準器用表示給定樣本的分類器的輸出,并試圖預測。
用于訓練校準器的樣品不應用于訓練目標分類器。
1.16.3 使用方法
CalibratedClassifierCV
是用來校準分類器的:
CalibratedClassifierCV
使用交叉驗證方法來擬合分類器和回歸器。對于每個 k (trainset, testset)
組合,在訓練集上訓練一個分類器,并使用它對測試集的預測來擬合一個回歸器。最后,我們得到了k(classifier, regressor)
,其中每個回歸器將其相應分類器的輸出映射到[0,1]中。每個組在calibrated_classifiers_
屬性中會被公開,其中每個條目是一個有predict_proba方法的校準分類器,輸出校準概率。predict_proba的輸出與calibrated_classifiers_
列表中k個估計器的預測概率平均值相對應。predict的輸出是概率最高的類。
用于校準的回歸器取決于method
參數。“Sigmoid”對應于一種基于Platt的Logistic模型[3]的參數化方法,舉例 被建模為,其中是logistic函數,和是用極大似然擬合回歸器時要確定的實數。'isotonic'
將代替一個非參數的isotonic回歸器,它輸出一個逐步不遞減的函數(見 sklearn.isotonic
)。
已經擬合好的分類器可以通過設置cv="prefit"
來校準。在這種情況下,數據只用于擬合回歸器。這取決于用戶確定用于擬合分類器的數據與用于擬合回歸器的數據是不相交的。
如果基本估計器支持多類預測,那么CalibratedClassifierCV
可以在多類設置中校準概率。該分類器首先以one-vs-rest的方式[4]分別對每類進行校準。在預測概率時,對每類的標定概率分別進行預測。由于這些概率之和不一定等于1,所以執行一個后處理來標準化它們。
The sklearn.metrics.brier_score_loss
可以用來評估分類器的校準的效果。
示例 |
---|
概率校準曲線 三分類的概率校準 分類器的概率校準 分類器校準的比較 |
參考資料:
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)