我們該選擇哪一個學習算法、使用哪一種參數配置,這就是機器學習中的模型選擇問題。理想的解決方案是對候選模型的泛化誤差進行評估,然後選擇泛化誤差最小的那個模型。但我們無法直接獲得泛化誤差,訓練誤差又由於過擬合現象的存在不適合作爲標準,如何進行模型評估與選擇?
basic terms
1.誤差(訓練誤差和泛化誤差)error(training error&generalization error)
誤差:把學習器的實際預測輸出與樣本的真實輸出之間的差異稱爲誤差
訓練誤差:學習器在訓練集上的誤差
泛化誤差:在新樣本上的誤差
2.過擬合、欠擬合
3.評估方法
用測試集上的‘測試誤差’作爲泛化誤差的近似。
從m個樣例數據中產生出訓練集S和測試集T:
- 留出法(hold-out):直接將數據集合劃分爲S、T,S與T互斥(一般要進行若干次隨機劃分、重複進行試驗評估後取平均值)。適用於數據集較大的情況。
- 交叉驗證法(cross validation):現將數據集D劃分爲k個大小相似的互斥子集。進行k次訓練和測試,每次k-1個子集作爲訓練集,流出1個作爲測試集。適用於數據集較大的情況。
- 自助法:自助從數據集D中有放回的隨機採集m個樣本構成D',將D’用作訓練集,D/D'用作測試集,這樣的測試結果,稱‘包外估計’。適用於數據集較小的情況。
4.調參與最終模型
大多數學習算法都有些參數需要設定,參數配置不同,學的模型的性能往往有顯著差別。需要調參(對算法設定參數)
5.性能度量
對於學習器的泛化性能進行評估,衡量模型泛化能力的評價標準。
前面提到了錯誤率和精度,這是分類任務中最常用的兩種性能度量。錯誤率是分類錯誤的樣本書佔樣本總數的比例,精度則是分類正確的樣本數佔 樣本總數的比例。
混淆矩陣
這裏又提了三個度量:查準率、查全率、F1
1)查準率:
2)查全率:
3)F1:是=
4)Fp
5)宏查全率、宏查準率、宏F1
6)微查準率、微查全率、微F1
ROC\AUC:
ROC:受試者工作特徵(Receiver Operating Characteristic)
roc曲線的縱軸爲“真正例率”,縱軸爲“假正例率”,兩者的定義
6. 代價敏感錯誤率與代價曲線
代價矩陣:cost01與cost10
ROC曲線不能反映出了,取而代之的是代價曲線:橫軸是取值爲(0,1)的正例概率代價,總之是取值爲(0,1)的歸一化代價
7.比較檢驗
這裏用到了假設檢驗的知識。
8.偏差與方差