1. 程式人生 > >機器學習學習筆記(二)-模型選擇與評估

機器學習學習筆記(二)-模型選擇與評估

  • 緒論
  • 模型評估與選擇(3)
  • 線性模型
  • 決策樹
  • 神經網路
  • 支援向量機
  • 貝葉斯分類
  • 整合學習
  • 聚類
  • 降維與度量學習
  • 特徵選擇與稀疏學習
  • 計算學習理論
  • 半監督學習
  • 概率圖模型
  • 規則學習
  • 強化學習

模型評估與選擇

2.1經驗誤差與過擬合
錯誤率:分類錯誤的樣本數佔樣本總數的比例
精度:1-錯誤率
把學習器的實際預測輸出與樣本的真實輸出之間的差異稱為“誤差”,學習器在訓練集上的誤差稱為“訓練誤差”或“經驗誤差”,在新樣本上的誤差稱為“泛化誤差”。
過擬合:當學習器把訓練樣本學得“太好”了的時候,很可能已經把訓練樣本自身的一些特點當做了所有潛在樣本都會具有的一般性質,這樣就會導致泛化效能下降。
欠擬合:對訓練樣本的一般性質尚未學好
在這裡插入圖片描述

2.2評估方法
通常將使用一個“測試集”來測試學習器對新樣本的判別能力,將測試誤差作為泛化誤差的近似。如何對資料集進行訓練集和測試集的劃分

2.2.1留出法
直接將資料集劃分為兩個互斥的集合,其中一個作為訓練集,另一個作為測試集,在訓練集上得到模型之後,再在測試集上評估測試誤差。
訓練集與測試集的劃分要儘可能的保持資料分佈的一致性,避免因資料劃分過程引入額外的偏差而對最終結果產生影響,例如在分類任務中至少要保持樣本的類別比例相似。保留類別比例的取樣方式通常稱為“分層取樣”。例如通過對D進行分層取樣而獲得含70%樣本的訓練集S和含30%的測試集T,若D包括500個正例,500個反例,則分層取樣得到的S應包括350個正例、350個反例,而T則包含150個正例和150個反例;若S、T中樣本類別比例差別很大,則誤差估計將由於訓練/測試資料分佈的差異而產生偏差。
不同的劃分方法將導致不同的訓練集和測試集,相應的,模型評估的結果也會有差別。因此單詞使用留出法得到的估計結果往往不夠穩定可靠,在使用留出法時,一般要採用若干隨機劃分、重複進行試驗評估後取平均值作為留出法的評估結果。例如進行100次隨機劃分,每次產生一個訓練/測試集用於實驗評估,100次後就會得到100個結果,而留出法返回的則是這100個結果的平均。

2.2.2交叉驗證法
先將資料集D劃分為k個大小相似的互斥子集,每個子集Di都儘可能保持資料分佈的一致性,即從D中通過分層取樣得到。然後,每次用k-1個子集的並集作為訓練集,餘下的那個子集作為測試集;這樣就可獲得k組訓練/測試集,從而可進行k次訓練和測試,最終返回的是這k個測試結果的均值。通常把交叉驗證法稱為“k折交叉驗證”,k最常用的取值是10。
在這裡插入圖片描述
與留出法相似,將資料集D劃分為k個子集同樣存在多種劃分方式。為減少因樣本劃分不同而引入的差別,k折交叉驗證通常要隨機使用不同的劃分重複p次,最終的評估結果是這p次k折交叉驗證結果的均值,例如常見的有“10次10折交叉驗證”。
留一法:當資料集D中有m個樣本,且k=m時,就是交叉驗證法的特例:留一法。

2.2.3自助法
給定包含m個樣本的資料集D,我們對它進行取樣產生資料集D’;每次隨機從D中挑選一個樣本,將其拷貝放入D’,然後再將該樣本放回初始資料集D中,使得該樣本在下次取樣時仍有可能被採到;這個過程重複執行m次後,我們就得到了包含m個樣本的資料集D’,這就是自助取樣的結果。顯然,D中有一部分樣本會在D’中多次出現,而另一部分樣本不出現。可以做一個簡單的估計,樣本在m次取樣中始終不被採到的概率是
在這裡插入圖片描述
通過自助取樣,初始資料集D中約有36.8%的樣本未出現在取樣資料集D’中,於是我們可將D’用於訓練集,D\D’用作測試集。

2.2.4調參與最終模型
大多數學習演算法都有引數需要設定,引數配置不同,學得模型的效能往往有顯著差異。因此,在進行模型評估和選擇時,除了要對適用學習演算法進行選擇,還需對演算法引數進行設定,這就是通常所說的“引數調節”或簡稱“調參”。

2.3效能度量
在這裡插入圖片描述
2.3.1錯誤率與精度
錯誤率是分類錯誤的樣本數佔樣本總數的比例,精度則是分類正確的樣本數佔樣本總數的比例。對樣例集D,分類錯誤率定義為
在這裡插入圖片描述
在這裡插入圖片描述

2.3.2查準率、查全率與F1
在這裡插入圖片描述
在很多情況下,我們可根據學習器的預測結果對樣例進行排序,排在前面的是學習器認為“最可能”是正確的樣本,排在最後的則是學習器認為“最不可能”的樣本。按此順序逐個把樣本作為正例進行預測,則每次可以計算出當前的查全率、查準率。以查準率為縱軸、查全率為橫軸作圖,就得到了查準率-查全率曲線,簡稱“P-R曲線”,顯示該曲線的圖稱為“P-R圖”。
在這裡插入圖片描述
很明顯從圖中可以看出,A和B學習器的效能是優於C學習器的,但是人們往往需要判斷的是A和B學習器的效能比較,因此人們設計了一些綜合考慮查準率、查全率的效能度量。
“平衡點”(簡稱BEP)就是這樣的一個度量,它是查準率=查全率是時的取值,例如圖中C學習器的BEP=0.64,基於平衡點的比較,可認為學習器A優於B。
平衡點是將查準率與查全率當作同等重要的變數,實際情況下,查準率與查全率的關注度是不一樣的。
度量Fb就可以表示出對查準率和查全率的不同偏好
在這裡插入圖片描述
其中的beta>0度量了查全率對查準率的相對重要性。beta=1時退化為特殊情況F1
在這裡插入圖片描述
當beta>1時查全率有更大的影響,當beat<1時查準率有更大的影響。
在這裡插入圖片描述