機器學習基礎 第六章 模型選擇

1 模型選擇方法

下圖是不同階多項式迴歸問題,從中可以看到不同的M取值所對應的不同效果,M=0和M=1時都是欠擬合,M=9多擬合,M=3時多項式迴歸模型剛好合適,在實際應用中不能將每個模型都畫出來進行觀察。


這裏寫圖片描述

在模型選擇中如何才能得到一個不過擬合也不欠擬合的模型?將數據集分爲:訓練集,交叉驗證集,測試集。對於每個可能的模型,用訓練數據訓練模型然後在訓練好的模型上做交叉驗證,在所有的模型中選出交叉驗證結果最好的模型最爲最終模型,然後在最終模型上的測試數據的精度作爲最終的模型精度。

2 交叉驗證

有的時候也將數據集分爲訓練集和測試集,將訓練數據集再次作爲測試數據集用於測試模型的性能,在方法論上是錯誤的,因爲這種測試方法會使模型對未知數據的預測誤差變得很大。

爲了避免過擬合,用訓練集訓練模型,用測試集測試模型的性能。

但是這種劃分方法會減少訓練集中的樣本,也許對模型很有用的樣本最終就沒有被劃分到訓練集中。所以一種解決方法是將數據全集連續劃分多次,使之成爲多個訓練集和測試集,最終的模型得分是這幾個訓練集和測試集的平均得分,這一過程稱爲交叉驗證。交叉驗證計算時間較長,但是不會浪費樣本數據信息,交叉驗證方法在小數據時相當有用。

2.1 計算交叉驗證指標

有數據d,經過k次平均分割,每次分割成trainitesti 分別代表第i 個測試集合訓練集,用traini 訓練模型,並用testi 測試模型,得到的第i 個模型的得分是scorei ,當結果k 次執行後,共得到k 個得分[score1,score2,,scorek] ,求這k 個得分的平均值作爲模型的最終得分。

2.2 數據集分割方法

2.2.1 K折法

將數據平均分成K 份,稱爲K 折。用其中的K1 份作爲訓練數據,剩下的一份作爲測試,進行K 次訓練和測試,得到K個得分作爲最終的得分。

2.2.2 留一驗證法(LOO)

留一驗證從樣本全集中取出一個作爲測試樣本,剩下的所有樣本作爲訓練樣本。假設有n 個樣本,將會有n 個不同的訓練集和測試集,這種方法不會浪費過多的訓練數據,因爲只有一個數據作爲測試樣本。

2.2.3 留P個樣本驗證(LPO)

這個方法和留一驗證法類似,留一驗證中留的是留一個樣本作爲測試樣本,這裏留的是P 個樣本而已。

3 模型性能的評價準則

3.1 混淆矩陣

二分類問題的混淆矩陣如下,P,N 爲預測結果。


這裏寫圖片描述
圖3.1.1 二分類問題混淆矩陣

定義:TP :爲正類別預測爲正類(正確預測);FP :正類被預測爲負類(錯誤預測);FN :負類被預測爲正類(錯誤預測);TN :負類被預測爲負類(正確預測)。P,N 爲預測結果

3.2 準確率、召回率、F-得分

1 二分類問題

定義:按照圖1.2-1中的定義,得到二分類的準確率、召回率、F-measures如下

precision=TPTP+FP

recall=TPTP+FN

Fβ=(1+β2)precision×recallβ2×precision+recall

2 多分類問題

定義:

  • y 是預測結果(集合),集合元素爲(sample,label)

  • y^ 是真實結果(集合),集合元素爲(sample,label)

  • L 是類別集合

  • S 是樣本集合

  • yl 是類別l 的預測結果

  • P(A,B)|AB||A|

  • R(A,B)|AB||B|

  • Fβ(A,B)(1+β)P(A,B)×R(A,B)β2P(A,B)+R(A,B)

1)對所有類別的準確率、召回率、Fβ 度量值求平均:

precision=1LlLP(yl,y^l)

recall=1LlLR(yl,y^l)

Fscore=1LlLFβ(A,B)

2)對整個樣本計算準確率、召回率、Fβ 度量值:

precision=P(y,y^)

recall=R(y,y^)

這中算法中microprecision=micro_recallFscore=Fβ(y,y^)

3)支持度加權平均計算準確率、召回率、Fβ 度量值:

precision=1lL|yi^|lL|yi^|P(yl,y^l)

recall=1lL|yi^|lL|yi^|R(yl,y^l)

Fscore=1lL|yi^|lL|yi^|Fβ(yl,y^l)

4)分別計算每個類別的準確率、召回率、F-得分,類似於1)中的不加權情況。

發佈了137 篇原創文章 · 獲贊 91 · 訪問量 67萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章