機器學習基礎——模型參數評估與選擇
當看過一些簡單的機器學習算法或者模型後,對於具體問題該如何評估不同模型對具體問題的效果選擇最優模型呢。
1. 經驗誤差、泛化誤差
假如m個樣本中有a個樣本分類錯誤
錯誤率:E = a / m;
精度: 1 - E
訓練誤差: 又叫經驗誤差,是指算法/模型在訓練樣本上的誤差
泛化誤差:算法/模型在新樣本上的誤差
顯然我們希望得到泛化誤差小的機器學習算法。
2.欠擬合、 過擬合
欠擬合:欠擬合是指訊息能力低下,本來一些有的特征沒有學習到。
解決方法:欠擬合一般比較容易克服,例如在決策樹學習中擴展分支在神經網絡學習中增加學習輪數就可以。
過擬合:模型把訓練樣本學的“太好”,很可能把訓練樣本自身的一些特點當做了所有潛在樣本都會具有的一般性質,這樣就會導致泛化能力下降。
解決方法: 很難克服或者徹底避免。
下面這張圖對欠擬合/過擬合解析的十分到位:
3. 評估方法——留出法
直接將數據集D劃分成兩個互斥的集合,其中一個作為訓練集S,另一個作為測試集T 即: D = S ∪ T , S ∩ T = ? . 在S上訓練出模型後用T來評估其測試誤差,作為泛化誤差的評估。
需要註意的訓練/測試集的劃分要盡可能的保持數據分布的一致性,避免因數據劃分過程引入額外的偏差而對最終結果產生影響。 如果從采樣的角度看數據集劃分過程,則保留類別比例的采樣方式通常稱為分層采樣。
單層留出法得到的評估結果往往不夠穩定可靠,在使用留出法時,一般采用若幹次隨機劃分、重復進行試驗評估後取平均值為留出法結果。
缺點: 若訓練集S包含絕大多數樣本則訓練出的模型可能更接近與用D訓練處的模型,但由於T比較小,評估結果可能不夠穩定準確。 若令測試機包含多一些樣本,則訓練集S與D差別更大,被評估的模型與用D訓練出的模型相比可能有較大差別,從而降低了評估結果的保真性。 常見的做法是將 2/3 ~ 4/5 的樣本用於訓練,剩余樣本用於測試。
4. 評估方法—交叉驗證法
5 . 評估方法——查準率、查全率
對於二分類問題進行如下統計:
查準率:
P = TP / (TP + FP)
查全率:
R = TP / (TP + FN)
以預測癌癥為例,正例為癌癥,反例不是癌癥。 查準率表示預測為癌癥實際發生癌癥的概率,而查全率是指預測為癌癥的覆蓋率(部分預測為反例但實際情況確實正例)。
其它機器學習算法:
監督學習——隨機梯度下降算法(sgd)和批梯度下降算法(bgd)
監督學習——決策樹理論與實踐(上):分類決策樹
監督學習——決策樹理論與實踐(下):回歸決策樹(CART)
監督學習——K鄰近算法及數字識別實踐
監督學習——樸素貝葉斯分類理論與實踐
監督學習——logistic進行二分類(python)
監督學習——AdaBoost元算法提高分類性能
無監督學習——K-均值聚類算法對未標註數據分組
參考:
周誌華 《機器學習》
《推薦系統實戰》
機器學習基礎——模型參數評估與選擇