【Abee】喫掉西瓜——西瓜書學習筆記(一)

緒論、模型評估與選擇

 

目錄 

【內容包含 第一章、第二章】

沒有免費的午餐(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檢驗

 

 

                變量

                          \tau _{t}=\frac{\sqrt{k}(\mu -\epsilon_{0})}{\sigma }

                 服從自由度爲k-1的t分佈

 

交叉t檢驗

對於不同的學習器,可以採用交叉驗證t檢驗,即用k折交叉驗證得到的測試錯誤率進行成對t檢驗

 

McNemar檢驗

分類差別列連表中的數據服從自由度爲1的卡方分佈

                  \tau_{\chi ^{2}}=\frac{(\left |e_{01} - e_{10} \right |-1)^{2}}{e_{01} +e_{10}}

                  其中e01爲學習器A分錯而學習器B分對的樣本的量,e10以此類推

Matlab程序       icdf('Chisquare',1-α,k-1)

R語言            qchisq(1-α,k-1)

 

Friedman檢驗

基於算法排序,F檢驗,公式太複雜不寫了

可以理解爲不同的數據集在不同的算法上得到的結果進行排序,並對此順序做出假設

 

Nemenyi檢驗

是一個後續檢驗,比如F檢驗之後可以繼續做這個檢驗

CD爲不同算法平均序值的臨界值域,qa可以查表得到

                        CD=q_{\alpha }\sqrt{\frac{k(k+1)}{6N}}

                       當序值超出這個值的時候,拒絕原假設

偏差-方差分解(bias-variance decomposition)

泛化誤差可以分爲偏差、方差和噪聲之和

                      E(f;D)=bias^{2}(x)+var(x)+\varepsilon ^{2}

其中  偏差:學習算法本身的擬合能力,隨訓練程度下降

         方差:訓練集變動導致的學習性能變化(數據擾動的影響),隨訓練程度上升

         噪聲:任一學習算法期望泛化誤差下界

 


快樂學習一白天
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章