1.再提邏輯回歸

   前面已經(jīng)講過了邏輯回歸,這里不再細(xì)講,只是簡(jiǎn)單的說一個(gè)函數(shù),主要是方便大家更好的理解概率校準(zhǔn)。

  在邏輯回歸中,用的最多的就是sigmod函數(shù),這個(gè)函數(shù)的作用就是把無限大或者無限小的數(shù)據(jù)壓縮到[0,1]之間,用來估計(jì)概率。圖像大致為:

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

基本上是以0.5分界,0.5以上為1,0.5以下為0。但是這個(gè)分界值可以自己設(shè)定。

2.分類函數(shù)的原理

       在進(jìn)行分類時(shí),基本上和邏輯回歸的原理一樣,計(jì)算出某個(gè)數(shù)據(jù)屬于各分類的概率,然后取概率最大的那個(gè)作為最終的分類標(biāo)簽。

       但是假設(shè)我們考慮這樣的一種情況:在二分類中,屬于類別0的概率為0.500001,屬于類別1的概率為0.499999。假若按照0.5作為判別標(biāo)準(zhǔn),那么毋庸置疑應(yīng)該劃分到類別0里面,但是這個(gè)真正的分類卻應(yīng)該是1。如果我們不再做其他處理,那么這個(gè)就屬于錯(cuò)誤分類,降低了算法的準(zhǔn)確性。

       如果在不改變整體算法的情況下,我們是否能夠做一些補(bǔ)救呢?或者說驗(yàn)證下當(dāng)前算法已經(jīng)是最優(yōu)的了呢?

       這個(gè)時(shí)候就用到了概率校準(zhǔn)。

3.Brier分?jǐn)?shù)

       在說概率校準(zhǔn)前,先說下Brier分?jǐn)?shù),因?yàn)樗呛饬扛怕市?zhǔn)的一個(gè)參數(shù)。

       簡(jiǎn)單來說,Brier分?jǐn)?shù)可以被認(rèn)為是對(duì)一組概率預(yù)測(cè)的“校準(zhǔn)”的量度,或者稱為“ 成本函數(shù) ”,這一組概率對(duì)應(yīng)的情況必須互斥,并且概率之和必須為1.

       Brier分?jǐn)?shù)對(duì)于一組預(yù)測(cè)值越低,預(yù)測(cè)校準(zhǔn)越好。

       其求解公式如下:(此公式只適合二分類情況,還有原始定義公式)

       大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

     其中  是預(yù)測(cè)的概率,大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)事件t的實(shí)際概率(如果不發(fā)生則為0),而N是預(yù)測(cè)事件數(shù)量。

     引用維基百科的一個(gè)例子說明 Brier分?jǐn)?shù)的計(jì)算方式:   

     假設(shè)一個(gè)人預(yù)測(cè)在某一天會(huì)下雨的概率P,則Brier分?jǐn)?shù)計(jì)算如下:
          如果預(yù)測(cè)為100%(P = 1),并且下雨,則Brier Score為0,可達(dá)到最佳分?jǐn)?shù)。
          如果預(yù)測(cè)為100%(P = 1),但是不下雨,則Brier Score為1,可達(dá)到最差分?jǐn)?shù)。
          如果預(yù)測(cè)為70%(P = 0.70),并且下雨,則Brier評(píng)分為(0.70-1)2 = 0.09。
          如果預(yù)測(cè)為30%(P = 0.30),并且下雨,則Brier評(píng)分為(0.30-1)2 = 0.49。
          如果預(yù)測(cè)為50%(P = 0.50),則Brier分?jǐn)?shù)為(0.50-1)2 =(0.50-0)2 = 0.25,無論是否下雨。

4.概率校準(zhǔn)

          概率校準(zhǔn)就是對(duì)分類函數(shù)做出的分類預(yù)測(cè)概率重新進(jìn)行計(jì)算,并且計(jì)算Brier分?jǐn)?shù),然后依據(jù)Brier分?jǐn)?shù)的大小判斷對(duì)初始預(yù)測(cè)結(jié)果是支持還是反對(duì)。

5.舉例說明

  1)核心函數(shù)

        a)sklearn.calibration.CalibratedClassifierCV

        b)主要參數(shù):

             base_estimator :初始分類函數(shù)

             method :校準(zhǔn)采用的方法。取值‘sigmoid’ 或者 ‘isotonic’

             cv :交叉驗(yàn)證的折疊次數(shù)。

         c)詳細(xì)代碼及說明            

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn) View Code

         d)代碼輸出及說明

        舉這個(gè)例子只是為了說明概率校準(zhǔn),所以有些地方可能不是很嚴(yán)謹(jǐn)。

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

******預(yù)測(cè)的分類值***************************[0 1 1 1]******屬于某個(gè)類的概率*************************[[  9.99748066e-01   2.51934113e-04]
 [  6.85286666e-02   9.31471333e-01]
 [  1.13899717e-07   9.99999886e-01]
 [  6.91186866e-04   9.99308813e-01]]******Brier scores*************************
0.0
******第一次概率校準(zhǔn)后的預(yù)測(cè)分類*************************[0 0 1 1]******第一次概率校準(zhǔn)后屬于某個(gè)類的概率******************[[ 0.75  0.25]
 [ 0.75  0.25]
 [ 0.25  0.75]
 [ 0.25  0.75]]******Brier scores*************************
0.75
*******第二次概率校準(zhǔn)后的預(yù)測(cè)分類*************************[0 0 1 1]*******第二次概率校準(zhǔn)后屬于某個(gè)類的概率**************************[[ 0.62500028  0.37499972]
 [ 0.62500028  0.37499972]
 [ 0.37500027  0.62499973]
 [ 0.37500027  0.62499973]]******Brier scores*************************
0.25

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

     首先,說下概率校準(zhǔn),通過上面的輸出可以看出,對(duì)于第二個(gè)數(shù)[3,2,6],第一次預(yù)測(cè)結(jié)果的概率為[  6.85286666e-02   9.31471333e-01],第一次校準(zhǔn)后的概率變成了[ 0.75  0.25],因?yàn)?.75>0.25,所以又被劃分到了類別0,第二次校準(zhǔn)后的概率變成了[ 0.62500028  0.37499972],所以也被劃分到了類別0.雖然校準(zhǔn)后的分類錯(cuò)了,但是也可以很好說明概率校準(zhǔn)的作用。

     其次,說下Brier scores,三次依次為0.0,0.75,0.25,根據(jù)越小越好的原則,初始分類函數(shù)已經(jīng)是最優(yōu)解了。

     第三,說下Brier scores中的0.75跟0.25,在代碼中會(huì)發(fā)現(xiàn)brier_score_loss(y_test, y_pred2, pos_label = 1)中參數(shù)pos_label的值是不一樣的,一個(gè)是0,一個(gè)是1,當(dāng)pos_label取值為1或者默認(rèn)時(shí),Brier scores中的0.75也會(huì)變成0.25,官方對(duì)pos_label的解釋為:Label of the positive class. If None, the maximum label is used as positive class,怎么翻譯都不好理解,所以這里就不翻譯了。但是經(jīng)過我的多次實(shí)驗(yàn)發(fā)現(xiàn),在二分類中,pos_label取值為1或者默認(rèn)時(shí),表示的應(yīng)該是分類錯(cuò)誤的百分比,pos_label=0則表示分類正確的百分比。

http://www.cnblogs.com/lc1217/p/7069000.html