1. 程式人生 > >機器學習初學者——模型評估與選擇

機器學習初學者——模型評估與選擇

一.經驗誤差與過擬合

1、錯誤率: 通常把分類錯誤的樣本數佔樣本總數的比例稱為錯誤率(Error rate)。 例如m個樣本中有a個樣本分類錯誤,則錯誤率E=a/m。相應的1-a/m 稱為精度(accuracy),即精度=1-錯誤率。 2、誤差:
1)我們把機器學習在訓練集上的誤差稱為“訓練誤差”(training error)或“經驗誤差”(empirical error); 2)而在新樣本集的誤差稱為“泛化誤差(generalization error)。 顯然我們要得到泛化誤差小的學習器,然而很多情況下,我們並不能實現知道新樣本是什麼樣的,實際能做的就是努力使經驗誤差最小化。 3、過擬合:

為了得到好的識別效果,我們希望能從訓練樣本中儘可能的學出適用於所有的樣本的“普遍規律”。然而當學習器把訓練樣本學得“太好”的時候,很有可能把訓練樣本自身的一些特點當做了潛在新樣本的特性,這樣就會導致新樣本的識別率減低,即泛華誤差增大。這種現象稱為“過擬合“(overfitting)。
相對的則是“欠擬合”(underfitting)。類比圖2.1。
過擬合最常見的因素就是由於學習能力過於強大,以至於把訓練樣本不太一般的特性都學習到了;而欠擬合則通常是學習能力不足造成的。欠擬合比較容易克服,例如在決策樹學習中擴充套件分支、神經網路學習中增加訓練輪數等。而過擬合則很麻煩,無法徹底避免,能做的只是在各類機器學習演算法中“緩解”過擬合。

二、評估方法(模型選擇)

在機器學習中,往往有很多種演算法可供選擇,甚至同一種演算法不同的引數,也會產生不同的模型,那麼我們該怎麼選擇呢? 理想的做法當然是在模型選擇的時候選擇泛化誤差最小的,但是正如上面講到的,很多時候我們無法直接獲取泛化誤差,而訓練誤差又會由於過擬合現象不適合作為標準。那麼,現實中如何進行模型評估選擇呢? 通常我們的樣本需要有一個“訓練集”,一個“測試集”,二者應當儘可能的互斥。這個應該很容易理解。 1)留出法(hold-out) 直接將資料集D劃分為兩個互斥的集合,其中一個訓練集合S,另一個測試集合T。S訓練出模型後,用T來評估其誤差,作為對泛化誤差的估計。
以二分類任務為例,D包含1000個樣本,訓練集S包含700個樣本,測試集T包含300個樣本,S訓練後,T有90個樣本分類錯誤,那麼其錯誤率為90/300*100%=30%,相應的精度為1-30%=70%。 注意: ①訓練集/測試集的劃分儘可能保持資料分佈的一致性 例如D進行分層取樣,70%訓練,30%測試。若D包含500個正例,500個反例,則S中應包含350個正例,350個反例,T中包含150個正例,150個反例。 ②一般需採用多次隨機分割、重複試驗進行評估後,取平均值作為評估結果。 對資料集D的分割,不同的方式可能會有不同的結果,所以應當儘可能的多次隨機劃分,例如取100次劃分,然後得到100個結果再取平均值。 ③常見的訓練集/測試集劃分比例大約在2/3~4/5 2)交叉驗證法(cross validation)
將資料集D劃分為K個大小相似的互斥子集,然後每次用k-1個子集作為訓練集,剩下的那個子集作為測試集,這樣可以得到k組訓練結果,最終求平均值。該做法通常稱為“k折交叉驗證”(k-fold cross validation)。k最常取值為10。如圖2.2所示。 與留出法相似,交叉驗證法通常也有多種劃分K個子集的方式,而且需要重複多次,常見的有“10次10折交叉驗證”。 3)留一驗證法(leave-one-outcross validation
留一驗證其實是交叉驗證的一個特例。如果k取值為樣本總數,即D中有m個樣本,k=m,m個樣劃分為m個子集,每個子集包含一個樣本。留一法使用的訓練集比原始資料集只少了1個樣本。 但是當資料集較大時,訓練m個模型的計算開銷大,是難以忍受的(100萬個樣本,需要訓練100萬個模型)。

三、效能度量

1)錯誤率和精度  這是分類任務中最常用的兩種效能度量,既適用於二分類任務,也適用與多分類任務。 2)查準率和查全率 錯誤率和精度雖常用,但並不能滿足所有的任務需求。以西瓜為例,假定對一車西瓜進行判別,顯然錯誤率是衡量有多少比例的瓜被誤判,但若我們關心的是“挑出來的西瓜有多少比例是好瓜”,或者”所有好瓜中有多少比例被跳出來“,那麼錯誤率顯然是不夠用的。 查準率(precision)和查全率(reall)更適用於此類需求。 對於二分類問題,可將真實類與預測類別的組合劃分為 真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四種情形,分別表示為TP、FP、TN、FN,則有 TP+FP+TN+FN=樣本總數。 分類結果的“混淆矩陣”(confusion matrix)如表2.1所示。
查準率和查全率是一對矛盾的度量,一般來說,查準率高時,查全率往往偏低;而查全率高時,查準率往往偏低。 3)ROC與AUC ROC全稱是“受試者工作特徵”(Received Operating Characteristic)曲線。其縱軸是“真正例率”(True Positive Rate,TPR),橫軸是“假正例率”(False Positive Rate,FPR)
AUC(Area Under Curve),即ROC曲線下的面積。判斷ROC曲線的優劣,可以根據ROC曲線的面積,即AUC來判斷。一般若一個學習器的ROC曲線被另一個學習器的ROC曲線包住,則可斷定後者的效能優於前者。
----周志華的《機器學習》讀書筆記