對於一個二分類模型,衡量模型效果的標準指標之一,是log-loss或binary cross entory(後面統一稱之爲交叉墒【cross entropy】)。給定一個二分類預測任務,模型不直接輸出0/1,而是輸出一個概率值,模型的交叉墒爲:
其中i表示在訓練集的所有樣本。
我們將在下一節介紹交叉墒的來歷。現在考慮這樣一個問題,假設測試集和訓練集的正負樣本比例不一樣。這並非憑空臆想的問題,而是最近新加問題Quora question pair challenge的參與者所面對的實際問題。本文目的是解釋爲什麼這種比例不一致性會對交叉墒造成問題(something I, and other posters pointed out),以及交叉墒如何解決此類問題。當正樣本的比例隨時間變化時,此問題也會出現。有些文章試圖將訓練集的預測轉化爲測試集的預測,但據我瞭解目前沒有這方面的嚴格的分析。
交叉墒與分類不均衡問題
交叉墒源於信息論。可以把它理解爲爲了從predicted set推導出label set,需要多少額外的信息,這是維基百科上的解釋【注:本人也不是太理解這個解釋,predicted set和label set分別表示什麼意思】。在我看來,一種更直觀的理解方式是,模型對標籤取值概率的"誠實度"獎勵,越"誠實"交叉墒越低。比如我們的模型相信標籤爲正的概率爲,模型的輸出值爲, 那麼取多少才能最小化交叉墒損失值呢?我們來推導一下,首先交叉墒的定義如下:
求它的極值,對求導,再設置導數爲零,得到:
化簡得到,也就是說,模型輸出真實的概率,此時交叉墒最小。
現在我們來考慮訓練集與測試集,正負樣本比例不一致爲什麼會造成問題。我們首先考慮這樣一個最傻模型,這個傻模型對所有的樣本的預測值都相同,也就是忽略輸入特徵,輸出一個常數。通過上文的討論,我們知道在訓練集上,最小化交叉墒的模型輸出值爲,也就是隨機選擇一個樣本標籤爲正的概率。我們希望這個輸出值在測試集上也能最小化交叉墒,但是隻有測試集與訓練集的正樣本概率一樣,才能在測試集上最小化交叉墒值。所以這種不一致性,導致模型在測試樣本墒並沒有達到交叉墒最優化的要求,所以測試集墒交叉墒損失會高於訓練集墒的交叉墒損失值。
此外,較複雜的模型,在對預測值不太確定的情況下【注:也就是對於預測值在0.5附近的樣本】,也會傾向於受此效應的影響。比如當訓練/測試集的正負樣本比例不同,並且模型沒有從訓練集裏吸收任何有效信息的,模型如果這麼做【注:輸出訓練集上的概率值】,它將會收到懲罰【注:測試集上的交叉墒會比較大】。
需要注意的是,有些指標對樣本不均衡問題敏感度比較低,比如area under the curve(AUV)
基於貝葉斯理論的預測值變換
假設我們的訓練集採樣自分佈,測試集採樣自分佈。我們假設,兩個分佈的唯一差別是正負比例不一樣,正樣本的分佈和負樣本的分佈是一致的【注:過採樣和降採樣,不會改變正或負樣本自身的分佈,因爲採樣一般採用隨機採樣】,也就是:
假設我們有樣本,我們的模型試圖預測樣本爲正的概率,其中表示標籤爲正,表示負。假設我們模型最優預測值爲。由貝葉斯理論,得到:
現在假設,同樣的樣本x採樣自,我們模型需要預測樣本爲正的概率。假設與的差別在於,正樣本採用率爲, 負樣本採樣率爲,則得到:
並且按照前文的假設,兩個分佈是唯一差別是正負樣本比例,而正或負樣本的分佈是一致的,又得到:
我們來看一下在X’上樣本x最優預測值:
由,可以得出,於是得到:
因此,從訓練集X到測試集X’的概率映射函數爲:
可以由此推導出x的不確定性是如何影響f(x)的不確定性,但本文就不推導了。
需要注意的是,通過對q最優化以下損失函數:
也可以推導出此概率映射函數。我們可以在X上最優化以下交叉墒:
達到優化X’上的交叉墒的目的,這個方法也可以推導出函數f。
舉個例子,假設訓練集的正樣本率爲37%,測試集的負樣本率爲16.5%。我們設置正樣本採樣率, 負樣本採樣率,則f函數圖像爲:
圖中已經標出,並且當x靠近0或1是,f(x)也是【注:也就說,當模型十分確認樣本的正負的時候,預測值的修正力度不會很大,當模型不太確認樣本的正負的時候,預測值的修正粒度會比較大】。
綜上所述,X和X’的正負比例一致非常重要。