機器學習中,無論是新建的學習模型還是對現(xiàn)有模型的優(yōu)化,都需要對模型進行評估,并選擇一個模型應(yīng)用于實際問題中。
因本人非理科學生,故而本文未涉及到復雜公式的推理過程,僅簡單的闡述一些原理上的概念,方便非理科學習理解機器學習的模型評估與選擇,也當是自己看書做的筆記,方便后續(xù)回顧。
機器學習說白了是利用歷史數(shù)據(jù),基于一定的學習算法讓計算機自己學習或者訓練,得到一個模型的過程。我們可以用這個模型進行預測。比如預測用戶的購買行為,或者閱讀行為,從而對用戶進行推薦或者排序。(非理科生的視角,有偏差的望容忍或者指出)。
機器學習得到一個或者多個模型時,我們怎么對模型進行評估和選擇呢?
1、機器學習的評估方法
一般來說模型的評估有以下幾種方法:留出法、交叉驗證法、自助法。
作為非算法工程師,個人認為大概理解含義就行啦,本人曾經(jīng)作為搜索排序的pm,使用到機器學習的模型進行排序,我其實不需要知道模型訓練和評估的實際操作,僅需要了解評估的方法和結(jié)果即可,了解評估方法可大概知道評估結(jié)果會存在哪些不足。
2、模型的評價標準
評價標準也有很多,不同評價標準適用的場景不同,作為非理科生理解原理和概念就行,對于具體推到過程和實現(xiàn)過程交給技術(shù)大牛們即可。本文簡單介紹幾組評價標準。
(1)錯誤率與精度
一般的二分類和多分類任務(wù)中,常用的評估指標為錯誤率與精度,其中錯誤率E=分類錯誤的樣本數(shù)/總樣本數(shù),而精度ACC=分類正確的樣本數(shù)/總樣本數(shù)=1-錯誤率。
(2)查準率、查全率、F1
信息檢索或者web搜索中,需要評估“檢索的信息中有多少比例是用戶感興趣的“,或者“”用戶感興趣的信息有多少被檢索出來了“的問題時,錯誤率和精度則不能滿足評估需求,故而用查準率和查全率來評估。
查準率P=TP/(TP+FP)=實際是正樣本預測仍然為正樣本的樣本量/預測為正樣本的樣本量,含義即:預測出來的正樣本中有多少在真實情況中也是正樣本。
查全率R=TP/(TP+FN)=實際是正樣本預測仍然為正樣本的樣本量/實際總的正樣本量。含義即:真實情況的正樣本中有多少被預測為正樣本。
排序案例中,用機器學習的結(jié)果進行排序,排序在前面的被認為“最有可能“是正例的樣本,相反排在后面的被認為“最有可能“是反例的樣本,但是具體哪個是正樣本沒有唯一的標準。此時為了能對比不同模型的優(yōu)劣,可以按順序逐個把樣本作為正樣本進行預測,則每次都可計算出當時的查準率和查全率,例如先把排在第一個位置的認為是正例,其他為反例,計算查準率和查全率(P1,R1 ),然后再把排在前兩個位置的認為是正例,其他為反例,計算查準率和查全率(P2,R2 ).....以此類推,可得到多個查準率和查全率(Pi,Ri),把查準率和查全率繪制在坐標軸上,可得到查準率--查全率曲線,簡稱P-R曲線,如下圖:
不同的模型對應(yīng)不同的P-R曲線,如果某個模型的P-R曲線完全包住另外一個模型的P-R曲線,則說明該模型比另外一個模型的性能更好,如圖中A、B都優(yōu)于C,而A和B有交叉難以判斷誰優(yōu)誰劣,通常的做法下是取平衡點對比,A的平衡點大于B,則說明A優(yōu)于B,平衡點即查準率=查全率的點。
F1或者Fβ:直接對比平衡點,過于簡單,有時候也用Fβ來度量模型優(yōu)劣,一般的β>0的數(shù)值,其中β=1表示標準的F1,β>1時查全率影響更大,β<1時查準率影響更大。
Fβ=((1+β^2)×P×R)/(β^2×P+R)
(3)ROC與AUC
ROC曲線與P_R曲線類似,不同的地方在于ROC曲線的縱軸是“真正例率”簡稱TPR,橫軸是“假正例率”簡稱FPR。
TPR=TP/(TP+FN)=實際是正樣本預測仍然為正樣本的樣本量/真實情況中正樣本數(shù),含義即:真實情況的正樣本中有多少仍被預測為正樣本。
FPR=FP/(FP+TN)=實際是反樣本預測仍然為反樣本的樣本量/真實情況中的反樣本數(shù)。含義即:真實情況的反樣本中有多少仍被預測為反樣本。
與類似P_R曲線,在使用ROC曲線時,區(qū)分正例和反例的每個區(qū)分點都可計算出一個與之對應(yīng)的點(FPR,TPR),很多個(FPR,TPR)點可繪制成一條曲線,稱為ROC曲線。
模型評估時,如果一個模型C的ROC曲線完全包住另外一個模型D的ROC曲線,則說明模型C優(yōu)于模型D,如果模型C和模型D有交叉,則用兩個模型ROC曲線下的面積AUC值來比較,如果模型C的AUC值大于模型D的AUC值,則說明模型C優(yōu)于模型D。
至于AUC的計算公式,感興趣的可自己找相關(guān)數(shù)據(jù)查看。
(4)代價敏感錯誤率與代價曲線
實際應(yīng)用中,有時候不同類型的錯誤所造成的后果不同,如醫(yī)療診斷中,把健康人診斷為患者,把患者診斷為健康人,前者只是增加進一步檢查的麻煩和費用,但是可能后者可能錯失治療的最佳時間。這種非均等代價則不能用查全率、查準率或者ROC曲線來評估模型。此時可考慮用代價敏感錯誤率與代價曲線來評估模型。
以二分類問題舉例說明代價敏感錯誤率和代價曲線。
若將第0類判別為第1類所造成的損失更大,則cost01>cost10,反之亦然,損失程度相差越大,cost01和cost10的值差別越大。
均等代價下,錯誤率直接計算錯誤次數(shù),在非均等代價下,希望是總代價最小,故而計算的是代價敏感 的錯誤率,公式略過。
代價曲線的橫軸是取值為【0,1】的正例概率代價:p是樣例為正例的概率
代價曲線的縱軸是取值為【0,1】的歸一化代價:p是樣例為正例的概率
其中,F(xiàn)PR計算通ROC曲線中的FPR公式,即假正例率,F(xiàn)NR=1-TPR(TPR是ROC曲線中的TPR)。
ROC曲線上的每一個點,都能在代價平面上繪制一條從點(0,F(xiàn)PR)到點(1,F(xiàn)NR)的線段,線段下的面積表示該條件下的期望總代價,取ROC的每個點轉(zhuǎn)化為代價平面上的一條線段,取所有線段的下界,圍城的面積即為該模型的期望總代價。如下圖。
不同模型期望總代價相比,期望總代價較小的模型更優(yōu)。
3、小結(jié)
以上這些評估的方法基本都是技術(shù)上使用的判斷標準,作為非技術(shù)人員,了解原理,能夠理解模型評估的結(jié)果。但是對評估結(jié)果需要抱有懷疑的態(tài)度,一方面可結(jié)合業(yè)務(wù)的特點,制定業(yè)務(wù)指標對模型進行評估;另一方面,新的模型上線后,最好是進行AB-test后,再依據(jù)測試結(jié)果選擇應(yīng)用哪個模型。實際應(yīng)用中,我們曾經(jīng)遇到的問題是評估時模型C的AUC值比模型D高,但是實際上線后,模型C的表現(xiàn)并不理想。尤其是當模型C、D的AUC值都比較大時,上線后模型C和D誰表現(xiàn)更好,這個不確定性更高。
總之,在進行模型評估時,作為為技術(shù)人員,需要理解模型技術(shù)上的評估含義,同時需要結(jié)合具體業(yè)務(wù)的實際情況,制定業(yè)務(wù)特征上的評估標準,同時注重分析模型表現(xiàn)差異的業(yè)務(wù)原因。