交叉墒與類不均衡問題

對於一個二分類模型,衡量模型效果的標準指標之一,是log-loss或binary cross entory(後面統一稱之爲交叉墒【cross entropy】)。給定一個二分類預測任務,模型不直接輸出0/1,而是輸出一個概率值y^\widehat y,模型的交叉墒爲:

iyilogy^i(1yi)log(1y^i)\sum_{i}-y_ilog\widehat y_i - (1-y_i)log(1-\widehat y_i)

其中i表示在訓練集的所有樣本。

我們將在下一節介紹交叉墒的來歷。現在考慮這樣一個問題,假設測試集和訓練集的正負樣本比例不一樣。這並非憑空臆想的問題,而是最近新加問題Quora question pair challenge的參與者所面對的實際問題。本文目的是解釋爲什麼這種比例不一致性會對交叉墒造成問題(something I, and other posters pointed out),以及交叉墒如何解決此類問題。當正樣本的比例隨時間變化時,此問題也會出現。有些文章試圖將訓練集的預測轉化爲測試集的預測,但據我瞭解目前沒有這方面的嚴格的分析。

交叉墒與分類不均衡問題

交叉墒源於信息論。可以把它理解爲爲了從predicted set推導出label set,需要多少額外的信息,這是維基百科上的解釋【注:本人也不是太理解這個解釋,predicted set和label set分別表示什麼意思】。在我看來,一種更直觀的理解方式是,模型對標籤取值概率的"誠實度"獎勵,越"誠實"交叉墒越低。比如我們的模型相信標籤爲正的概率爲pp,模型的輸出值爲0q10\le q\le 1, 那麼qq取多少才能最小化交叉墒損失值呢?我們來推導一下,首先交叉墒的定義如下:

loss(q)=plog(q)(1p)log(1q)loss(q)=-plog(q)-(1-p)log(1-q)

求它的極值,對qq求導,再設置導數爲零,得到:

1p1q=pq\frac{1-p}{1-q} = \frac{p}{q}

化簡得到q=pq=p,也就是說,模型輸出真實的概率pp,此時交叉墒最小。

現在我們來考慮訓練集與測試集,正負樣本比例不一致爲什麼會造成問題。我們首先考慮這樣一個最傻模型,這個傻模型對所有的樣本的預測值都相同,也就是忽略輸入特徵,輸出一個常數。通過上文的討論,我們知道在訓練集上,最小化交叉墒的模型輸出值爲P(y)P(y),也就是隨機選擇一個樣本標籤爲正的概率。我們希望這個輸出值在測試集上也能最小化交叉墒,但是隻有測試集與訓練集的正樣本概率一樣,才能在測試集上最小化交叉墒值。所以這種不一致性,導致模型在測試樣本墒並沒有達到交叉墒最優化的要求,所以測試集墒交叉墒損失會高於訓練集墒的交叉墒損失值。

此外,較複雜的模型,在對預測值不太確定的情況下【注:也就是對於預測值在0.5附近的樣本】,也會傾向於受此效應的影響。比如當訓練/測試集的正負樣本比例不同,並且模型沒有從訓練集裏吸收任何有效信息的,模型如果這麼做【注:輸出訓練集上的概率值】,它將會收到懲罰【注:測試集上的交叉墒會比較大】。

需要注意的是,有些指標對樣本不均衡問題敏感度比較低,比如area under the curve(AUV)

基於貝葉斯理論的預測值變換

假設我們的訓練集採樣自分佈(X,y)(X, y),測試集採樣自分佈(X,y)(X',y')。我們假設,兩個分佈的唯一差別是正負比例不一樣,正樣本的分佈和負樣本的分佈是一致的【注:過採樣和降採樣,不會改變正或負樣本自身的分佈,因爲採樣一般採用隨機採樣】,也就是:

X(y=0)X(y=0)X|(y=0) \sim X'|(y'=0)
X(y=1)X(y=1)X|(y=1) \sim X'|(y'=1)

假設我們有樣本xXx\in X,我們的模型試圖預測樣本爲正的概率P(yx)P(y|x),其中yy表示標籤爲正,¬y\neg y表示負。假設我們模型最優預測值爲pp。由貝葉斯理論,得到:

pP(yx)=P(xy)P(y)P(x)p\approx P(y|x)=\frac{P(x|y)P(y)}{P(x)}
=P(xy)P(y)P(xy)P(y)+P(x¬y)P(¬y)=\frac{P(x|y)P(y)}{P(x|y)P(y)+P(x|\neg y)P(\neg y)}
=uu+v=\frac{u}{u+v}

現在假設,同樣的樣本x採樣自XX',我們模型需要預測樣本爲正的概率P(yx)P(y'|x)。假設XX'XX的差別在於,正樣本採用率爲α\alpha, 負樣本採樣率爲β\beta,則得到:

P(y)=αP(y)P(y')=\alpha P(y)
P(¬y)=βP(¬y)P(\neg y') = \beta P(\neg y)

並且按照前文的假設,兩個分佈是唯一差別是正負樣本比例,而正或負樣本的分佈是一致的,又得到:

P(xy)=P(xy)P(x|y)=P(x|y')
P(x¬y)=P(x¬y)P(x|\neg y)=P(x|\neg y')

我們來看一下在X’上樣本x最優預測值:

P(yx)=P(xy)P(y)P(xy)P(y)+P(x¬y)P(¬y)P(y'|x)=\frac{P(x|y')P(y')}{P(x|y')P(y')+P(x|\neg y')P(\neg y')}

=αuαu+βv=\frac{\alpha u}{\alpha u + \beta v}

puu+vp\approx\frac{u}{u+v},可以得出vu(1p)/pv\approx u(1-p)/p,於是得到:

P(yx)αuαu+βvP(y'|x)\approx \frac{\alpha u}{\alpha u + \beta v}
=αuαu+βu(1p)/p=\frac{\alpha u}{\alpha u+\beta u(1-p)/p}
=αpα+β(1p)=\frac{\alpha p}{\alpha + \beta (1-p)}

因此,從訓練集X到測試集X’的概率映射函數爲:

f(x)=αxαx+β(1x)f(x)=\frac{\alpha x}{\alpha x + \beta (1-x)}

可以由此推導出x的不確定性是如何影響f(x)的不確定性,但本文就不推導了。

需要注意的是,通過對q最優化以下損失函數:

αplog(q)+β(1p)log(1q)\alpha p log(q)+\beta(1-p)log(1-q)

也可以推導出此概率映射函數。我們可以在X上最優化以下交叉墒:

αylog(y^)+β(1y)log(1y^)\alpha ylog(\widehat y) + \beta(1-y)log(1-\widehat y)

達到優化X’上的交叉墒的目的,這個方法也可以推導出函數f。

舉個例子,假設訓練集的正樣本率爲37%,測試集的負樣本率爲16.5%。我們設置正樣本採樣率α=16.5/37\alpha=16.5/37, 負樣本採樣率β=83.5/63\beta=83.5/63,則f函數圖像爲:
在這裏插入圖片描述

圖中已經標出f(0.37)=0.165f(0.37)=0.165,並且當x靠近0或1是,f(x)也是【注:也就說,當模型十分確認樣本的正負的時候,預測值的修正力度不會很大,當模型不太確認樣本的正負的時候,預測值的修正粒度會比較大】。

綜上所述,X和X’的正負比例一致非常重要。

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