緒論、模型評估與選擇
目錄
【內容包含 第一章、第二章】
沒有免費的午餐(No Free Lunch Theorem)
過擬合(overfitting)與欠擬合(underfitting)
沒有免費的午餐(No Free Lunch Theorem)
所有學習算法的期望性能相同(只是處理不同的問題時,學習算法A優於學習算法B)
過擬合(overfitting)與欠擬合(underfitting)
過擬合:學習樣本集非一般特徵,泛化性能下降
解決方法:1. 選擇泛化誤差最小的模型 2.增加噪聲,數據增強(旋轉,裁剪,光照,翻轉)
3.減小網絡規模(不常用) 4. 正則化
欠擬合:沒有學到樣本集一般特徵
解決方法:1. 在決策樹中增加分支 2. 神經網絡學習中多訓練幾輪
幾種模型驗證方法
留出法 (hold-out)
將數據集分爲互斥的兩個集合,作爲訓練集和驗證集,比例一般在0.66-0.8左右
交叉驗證法(cross validation)
將數據集分爲k個大小相似的互斥子集,每次保留一個集合作爲驗證集,其餘集合作爲訓練集,進行k次訓練和測試,返回測試結果的均值,也稱k折交叉驗證
自助法(bootstrapping)
可放回抽樣,對包含m個樣本的數據集D,每次抽取一個,拷貝入D’,重複執行m次。某些數據可能被抽取多次,某些一次都沒有抽到。某一樣本始終不被抽到的概率約等於0.368,把這個部分抽出來作爲驗證集
適用範圍:數據集較小,難於有效劃分訓練\驗證集時使用
模型評估的常見參數
錯誤率(error rate):分類錯誤率爲分類錯誤的數佔樣本總數的比例
精度(accuracy):精度 = 1 - 錯誤率
查準率(precision):真陽性/(真陽性+假陽性)所有預測正例中的真實正例
查全率(recall):真陽性/(真陽性+假陰性)所有真實正例中判斷正確的例
P-R曲線和平衡點(Break Even Point):
P-R曲線即橫軸是查全率,縱軸是查準率的曲線,平衡點是對稱軸y=x與曲線的交點
如果A曲線能完全包住C曲線,則可以認爲A曲線性能優於C曲線
對於兩個有交叉的曲線,平衡點更高的那個性能更好(還是要看具體問題)
F1:幫助(並不是
查準率和查全率的調和平均數
調和平均數比起算術平均和幾何平均更偏重較小值
ROC曲線(Receiver Operating Characteristic):
橫軸爲假正例率(FNR)(所有真正假例中的錯誤識別的正例)FP/(TN+FP)
縱軸爲真正例率(FPR)(所有真正例中的正確識別的正例,即recall)TP/(TP+FN)
AUC(Area Under ROC Curve):
顧名思義,ROC曲線下的面積,面積越大模型性能越好
代價矩陣:當FN,FP的結果重要性不一樣時,可以設定代價矩陣對其加權,比如二分代價矩陣可以爲[[0,1],[5,0]]
代價曲線:取(0,FPR),(1,FNR)兩點連線,將ROC上每個點轉換成代價平面的一條線,所有線取下界得到期望總體代價
模型性能檢驗
假設檢驗:在某個置信度範圍內是否拒絕原假設
二項檢驗的代碼
Matlab icdf('Binomial',1-α,m,k-1)
R語言 qbinom(1-α,m,ε0)
t檢驗 當單個學習器多次試驗得到多個測試錯誤率時,可以使用t檢驗
變量
服從自由度爲k-1的t分佈 |
交叉t檢驗
對於不同的學習器,可以採用交叉驗證t檢驗,即用k折交叉驗證得到的測試錯誤率進行成對t檢驗
McNemar檢驗
分類差別列連表中的數據服從自由度爲1的卡方分佈
其中e01爲學習器A分錯而學習器B分對的樣本的量,e10以此類推
Matlab程序 icdf('Chisquare',1-α,k-1)
R語言 qchisq(1-α,k-1)
Friedman檢驗
基於算法排序,F檢驗,公式太複雜不寫了
可以理解爲不同的數據集在不同的算法上得到的結果進行排序,並對此順序做出假設
Nemenyi檢驗
是一個後續檢驗,比如F檢驗之後可以繼續做這個檢驗
CD爲不同算法平均序值的臨界值域,qa可以查表得到
當序值超出這個值的時候,拒絕原假設
偏差-方差分解(bias-variance decomposition)
泛化誤差可以分爲偏差、方差和噪聲之和
其中 偏差:學習算法本身的擬合能力,隨訓練程度下降
方差:訓練集變動導致的學習性能變化(數據擾動的影響),隨訓練程度上升
噪聲:任一學習算法期望泛化誤差下界