一. 基本思想
在之前的博客中,我們討論了邏輯回歸模型(Logistic Regression)解決分類問(wèn)題。但是我們發(fā)現(xiàn),邏輯回歸模型解決的是二分問(wèn)題。但是在現(xiàn)實(shí)情境下,我們的訓(xùn)練集往往包含多個(gè)類,那我們可不可以把把多分類問(wèn)題轉(zhuǎn)化為二分類問(wèn)題呢?答案是肯定的。多分類問(wèn)題的基本思想就是,將多分類任務(wù)拆解為若干個(gè)二分類任務(wù)求解。
二. 拆分策略
假設(shè)樣本數(shù)據(jù)中有N個(gè)類別。
1. 一對(duì)一拆分(OvO)
- 基本思想:
將N個(gè)類別兩兩匹配,每次使用2個(gè)類別的數(shù)據(jù)訓(xùn)練分類器,從而產(chǎn)生N(N?1)/2個(gè)二分類器。使用時(shí),將樣本提交給所有的分類器,得到了N(N?1)/2個(gè)結(jié)果,最終屬于哪個(gè)類別通過(guò)投票產(chǎn)生。 - 分類器個(gè)數(shù):
N(N?1)/2個(gè) - 特點(diǎn):
分類器較多,且每個(gè)分類器在訓(xùn)練時(shí)只使用了2個(gè)類別的樣本數(shù)據(jù)。
2. 一對(duì)多拆分(OvR)
- 基本思想:
每次將一個(gè)類作為樣例的正例,其他所有均作為反例,得到N個(gè)分類器。也就是說(shuō),每個(gè)分類器能識(shí)別一個(gè)固定類別。使用時(shí),若有一個(gè)分類器為正類,則就為該類別;若有多個(gè)分類器為正類,則選擇置信度最高的分類器識(shí)別的類別。 - 分類器個(gè)數(shù):
N個(gè) - 特點(diǎn):
相比OvO分類器較少,且每個(gè)分類器在訓(xùn)練時(shí)使用了所有樣本數(shù)據(jù)。
3. 多對(duì)多拆分(MvM)
- 基本思想:
每次將若干個(gè)類作為正例、若干個(gè)類作為反例。顯然OvO、OvR都是其特例。MvM的正、反類設(shè)計(jì)必須有特殊的設(shè)計(jì),常用的一種技術(shù):”糾錯(cuò)輸出碼”,簡(jiǎn)稱ECOC。
ECOC是將編碼的思想引入類別的劃分,并可能在解碼過(guò)程中具有容錯(cuò)性。ECOC工作過(guò)程主要分為兩步:
1.對(duì)N個(gè)類做M次劃分,每次劃分將一部分作為正類,一部分劃分反類,從而形成一個(gè)二分類訓(xùn)練集。一共產(chǎn)生M個(gè)訓(xùn)練集,訓(xùn)練出M個(gè)分類器。
2.M個(gè)分類器分別對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),這些預(yù)測(cè)標(biāo)記組成一個(gè)編碼。將這個(gè)預(yù)測(cè)編碼與每個(gè)類各自的編碼進(jìn)行比較,返回其中距離最小的類別作為最終結(jié)果。 - 分類器個(gè)數(shù):
M個(gè) - 特點(diǎn):
對(duì)同一個(gè)學(xué)習(xí)任務(wù)來(lái)說(shuō),ECOC編碼越長(zhǎng),糾錯(cuò)能力越強(qiáng)。然而編碼越長(zhǎng)所需要的訓(xùn)練的分類器越多,計(jì)算存儲(chǔ)開(kāi)銷都會(huì)增大;另一方面對(duì)于有限類別碼長(zhǎng)超過(guò)一定范圍就沒(méi)有意義了。對(duì)于同等長(zhǎng)度的編碼,理論上來(lái)說(shuō),任務(wù)兩個(gè)類別之間的編碼距離越遠(yuǎn),則糾錯(cuò)能力越強(qiáng)。
三. 類別不平衡問(wèn)題
我們?cè)谥坝懻摰姆诸悊?wèn)題中,往往都是假設(shè)樣本是平衡的,也就是正類與反類的樣本個(gè)數(shù)相近。但實(shí)際中,很有可能正類與反類個(gè)數(shù)差別懸殊。我們假設(shè)有這種情況,訓(xùn)練數(shù)據(jù)有反例998個(gè),正例2個(gè),模型是一個(gè)永遠(yuǎn)將新樣本預(yù)測(cè)為反例的學(xué)習(xí)器,就能達(dá)到99.8%的精度,這樣顯然是不合理的。
解決這個(gè)問(wèn)題,主要有3種方法:(假設(shè)反類個(gè)數(shù)大于正類)
1.欠采樣法
對(duì)訓(xùn)練集里的反例樣本進(jìn)行“欠采樣”,即去除一些反例使得正反例數(shù)目接近,再進(jìn)行學(xué)習(xí)。由于丟棄很多反例,會(huì)使得訓(xùn)練集遠(yuǎn)小于初始訓(xùn)練集,所以有可能導(dǎo)致欠擬合。所以提出以下策略
代表算法:EasyEnsemble
利用集成學(xué)習(xí)機(jī)制,每次從大多數(shù)類中抽取和少數(shù)類數(shù)目差不多的重新組合,總共構(gòu)成n個(gè)新的訓(xùn)練集,基于每個(gè)訓(xùn)練集訓(xùn)練出一個(gè)AdaBoost分類器(帶閾值),最后結(jié)合之前訓(xùn)練分類器結(jié)果加權(quán)求和減去閾值確定最終分類類別。
2. 過(guò)采樣法
增加一些正例使得正反例數(shù)目接近,然后再學(xué)習(xí)。需要注意的是不能只是對(duì)初始正例樣本重復(fù)采樣,否則導(dǎo)致嚴(yán)重的過(guò)擬合。所以提出以下策略
代表算法:SMOTE
合成新的少數(shù)樣本的策略是,對(duì)每個(gè)少類a樣本,從最近鄰中隨機(jī)選一個(gè)樣本b,在a、b之間連線上隨機(jī)選一點(diǎn)作為合成新樣本。
3. 再縮放思想
一般我們?cè)谟?xùn)練模型時(shí),正反樣本數(shù)目是相近的,所以在邏輯回歸中,φ(z)≥0.5判斷為1類,反之為0類。
但如果訓(xùn)練集中正反例數(shù)目相差懸殊,令m+表示正例數(shù)目,m-表示反例數(shù)目,假設(shè)訓(xùn)練集是無(wú)偏采樣,觀測(cè)幾率就代表了真實(shí)幾率,只要分類器的預(yù)測(cè)幾率高于觀測(cè)幾率就判定為正例,即
即判定為正例,實(shí)際上想想也很簡(jiǎn)單,本來(lái)是假設(shè)正負(fù)例各占一半,所以是0.5,現(xiàn)在類別樣本數(shù)目不均衡,所以需要大于實(shí)際正例數(shù)目所占比。
實(shí)際上,再縮放實(shí)際操作起來(lái)不現(xiàn)實(shí),因?yàn)榧僭O(shè)的前提訓(xùn)練集是真實(shí)的樣本總體的無(wú)偏采樣往往不成立,所以觀測(cè)幾率未必反映真實(shí)幾率。