1. 程式人生 > >機器學習中的評估方法

機器學習中的評估方法

1. 評估方法

(1)留出法:

定義:直接將集合劃分為兩個互斥的集合,其中一個作為訓練集合,一個作為測試集合

注意:

(a)測試集合和訓練集合儘可能保持資料分佈的一致性,比如要保證正反樣本的比例不變(這是一種導致過擬合的原因)

(b)在給定了訓練/測試集合的樣本比例之後,仍要存在多種的劃分方式,對資料集合D進行分割。畢竟單次的使用留出法的結果往往是不可靠的。一般要採用若干次的隨即劃分,重複進行實驗評估後取得平均值作為留出法的最終評估結果

(c)訓練/測試集合的大小比例問題。測試集合過小,會導致測評結果的方差變大;訓練集合過小,會導致偏差過大,一般使用的都是2/3~4/5的樣本用於訓練

(2)交叉驗證法(無放回的重取樣)

交叉驗證方法還有一個特例:留一法(Leave-one-out,LOO)。顯然留一法不受隨即樣本劃分的影響,因為m個樣本只有唯一的方式劃分為m個子集,每個子集包含一個樣本。由於使用的訓練資料集合和初始資料集合相比只是少了一個數據,那麼相應訓練出來的模型就會很相似,實踐認為,留一法的評估結果往往是比較準確的。但是留一法存在效能上的缺陷。比如,m個樣本就要訓練m個模型,當m比較大的時候,那麼就比較麻煩了

優點:

1. 在處理較小的資料集合的時候我們一般會使用較大的k值來增加,根據NX(1-1/k)較大的k使得在每次的迭代中會有更小的資料bias,但是同時會導致validation的時間變長,而且也會導致high Variance。也可以看出,LOO更適合小資料集上的訓練

2. 那麼資料較大的時候我們一般會使用較小的k值

(3)自助法Bootstrapping(有放回的重取樣)

有放回的隨機取樣方法。我們可以做一個簡單的估計,樣本在m次取樣的過程中始終不被採到的概率是(1-1/m)^m,對m取極限,得到1/e=0.368。也就是說,通過自助法,初始資料集合中大概有36.38%的樣本未出現在取樣資料集合D’中,於是我們可以將D‘作為訓練集合,剩下的資料作為測試集合,那麼我們對這中大概有1/3的樣本沒在測試集合中出現的測試稱作包外估計(out-of-bag estimate)

       優點:

1. 資料集合較小,難以有效劃分訓練/測試集時很有用

2. 能從訓練集合中產生很多不同的訓練集,這對整合學習等方法很有好處

缺點:

改變了初始資料的分佈,會引入偏差。因此如果初始的資料量足夠的時候還是希望使用留出法和交叉驗證法比較好

2. 查準率,查全率,F1 Score

真實情況

預測結果

正例

反例

正例

TP(真正例)

FN(假反例)

反例

FP(假正例)

TN(真反例)

查準率P=TP/(TP+FP)

查準率(精確率)是針對我們預測結果而言的,它表示的是預測為正的樣本中有多少是真正的正樣本。那麼預測為正就有兩種可能了,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP)

查準率更加重視正例的準確程度,在推薦系統中,我們更希望推薦的商品是真正對使用者有吸引力的,而不想推薦一些不相關的產品,以免打擾使用者;但是對於資訊檢索中的逃犯檢索,我們就希望比較大的查全率。

查全率R=TP/(TP+FN)

查全率(召回率)是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。那也有兩種可能,一種是把原來的正類預測成正類(TP),另一種就是把原來的正類預測為負類(FN)

查準率較高的時候,查全率往往偏低;查全率較高的時候,查準率往往比較低。我們可以通過一個例子來看,希望好瓜儘可能多的選擇出來,則可以通過增加選瓜的數量來實現,如果將所有的西瓜都選擇上,那麼所有的好瓜也必然都選擇上了,這樣的查準率就會比較低;如希望選擇出的好瓜的概率儘可能高,那麼只挑選最有把握的瓜,但是這樣就會導致漏掉不少的好瓜,使得查全率比較低。

在很多情況下,我們都的機器學習的模型對分類問題的預測結果都是以概率的形式呈現出來的,如果要計算準確率,那麼我們就要設定一個閾值,手動將這些概率轉換成一種類別。所以,這個閾值的設定在很大程度上都會影響到整個模型的概率準確率的計算,那麼我們適用P-R曲線就可以不用這個轉化的過程了(其實AUC和logloss都是可以實現這個過程)。我們根據機器學習得到結果排序,分別對樣本作為正例進行預測,則每次就可以計算出當前的查準率和查全率,以查準率作為縱軸、查全率作為橫軸,就得到了P-R曲線

P-R曲線


       效能比較:

       (1)如果一個機器學習的P-R曲線被另外的一個機器學習的曲線完全包住,那麼可以斷言後者的效能比前者的效能好,比如圖中的A的效能就比B的效能好

       (2)如果有交叉,那麼只能在具體的查全率的狀態下比較二者的查準率

       (3)當然,我們也可以通過平衡點(Break-Even Point)來判別二者的優劣。也就是“查準率=查全率”的時候的取值,值大,那麼效能就好

       (4)上面的都是太簡單了,我們可以使用F1來來度量,我們先看看F1是什麼:F1是查全率和查準率的調和平均(與算術平均和幾何平均相比,調和平均更加關注較小值)




由於查準率和查全率對預測結果的關注度不同我們引入了一個新的評價標準,也就是更加一般化的F1 Score:



       在上面的公式中,我們通過beta來調整查全率和產準率的權衡。Beta>1查全率具有更大影響;Beta<1查準率有更大的影響。

       (5)上面的是針對單個二分類來說的,那麼對於更一般的情況下,我們有如下方法:




3. ROC與AUC




AUC對樣本類別是否均衡並不敏感,這也是不均衡樣本通常用AUC評價分類器效能的一個原因。