模型评估(笔记)
模型評估主要分為離線評估和在線評估兩個階段
針對分類、排序、回歸、序列預測等不同類型的機器學習問題,評估指標的選擇也有所不同
一、評估指標的局限性
1、準確率的局限性
當不同類別的樣本比例非常不均衡時,占比大的類別往往成為影響準確率的最主要因素
2、準確率與召回率權衡
精確率:指分類正確的正樣本個數占分類器判定為正樣本的樣本個數比例
召回率:分類正確的正樣本個數占真正的正樣本個數的比例
為了評估一個排序模型的好壞,不僅要看模型在不同的TopN下的PrecisionN和RecallN,而且最好繪制出模型的P-R曲線,只有通過P-R曲線的整體表現,才能對模型進行更為全面的評估。除此之外,F1和ROC也能綜合地反映一個模型的性能。
3、均方根誤差
RMSE經常被用來衡量回歸模型的好壞
RMSE的意外:無論采用哪種回歸模型,得到的RMSE指標都非常高,然而事實是,模型在95%的時間區間內的預測誤差小于1%,取得不錯的預測效果。那么造成RMSE指標居高不下的最可能的原因是什么?
在實際問題中,如果存在個別偏離程度非常大的離群點,即使離群點數量非常少,也會使RMSE指標變得很差
解決方法:
1)如果認為離群點是噪聲點的話,就需要在數據預處理的階段把這些噪聲點過濾掉
2)如果不認為離群點是噪聲點的話,就需要進一步提高模型的預測能力,將離群點產生的機制建模進去
3)可以找一個更合適的指標來評估該模型(關于評估指標,其實存在比RMSE更好的魯棒性指標,比如平均絕對百分比誤差MAPE)
二、ROC曲線
二值分類器是機器學習領域中最常見也是應用最廣泛的分類器。評價二值分類器的指標很多,比如precision、recall、F1 score、P-R曲線等。ROC曲線則有很多優點,經常作為評估二值分類器最重要指標之一
1、什么是ROC曲線?
ROC曲線的橫坐標為假陽性率(FPR),縱坐標為真陽性率(TPR)。FPR和TPR計算方法分別為FPR= FP/N ,TPR= TP/P
P為真實的正樣本數量,N為真實的負樣本數量,TP是P個正樣本中被分類器預測為正樣本的個數,FP是N個負樣本中被分類器預測為正樣本的個數
舉個例子:10個患者,其中3位感冒,另外7位沒有感冒。醫院對這10個患者進行診斷,診斷出3位感冒者,有2位確實是真正的患者(TP=2),那么真陽性率TPR=TP/P=2/3。對于7位正常者,有一位患感冒(FP=1),那么假陽性率FPR= FP/N=1/7。對于這個分類器來說,這組分類結果就對應ROC曲線上的一個點(1/7,2/3)
2、如何計算AUC?
AUC指的是ROC曲線下的面積大小,該值能夠量化地反映基于ROC曲線衡量出的模型性能
3、ROC曲線相比P-R曲線有什么特點?
相比P-R曲線,ROC曲線有一個特點,當正負樣本的分布發生變化時,ROC曲線的形狀能夠基本保持不變,而P-R曲線的形狀一般會發生劇烈的變化
若選擇不同的測試集,而ROC曲線則能夠更加穩定地反映模型本身的好壞
如果希望更多的看到模型在特定數據集上的表現,P-R曲線則能夠更直觀地反映其性能
三、余弦距離的應用
在模型訓練過程中,我們也在不斷的評估樣本間的距離,如何評估樣本距離也是定義優化目標和訓練方法的基礎
1、為什么一些場景中要使用余弦相似度而不是歐式距離?
余弦相似度關注的是向量角度關系,并不關心它們的絕對大小。當一對文本相似度的長度差距很大,但是內容很相近時,若果使用詞頻或此向量作為特征,它們在特征空間中的歐式距離通常很大;而如果使用余弦相似度的話,它們之間的夾角可能很小,因而相似度很高
總體來說,歐式距離體現數值上的絕對差異,而余弦距離體現在方向上的相對差異
2、余弦距離是否是一個嚴格定義的距離?
距離的定義必須滿足正定性、對稱性、三角不等式成立,則該實數可稱為這對元素之間的距離
余弦距離滿足正定性和對稱性,但是不滿足三角不等式,因此它不是嚴格定義的距離
四、A/B測試的陷阱
A/B測試是驗證新模塊、新功能、新產品是否有效,新算法、新模型的效果是否有提升,新設計是否受到用戶歡迎,新更改是否影響用戶體驗的主要測試方法
1、在對模型進行過充分的離線評估之后,為什么還要進行在線A/B測試?
需要在線的A/B測試的原因如下:
1)離線評估無法完全消除模型過擬合的影響,因此得出離線評估結果無法完全替代線上評估結果
2)離線評估無法完全還原線上的工程環境
3)線上系統的某些商業指標在離線評估中無法計算
2、如何進行線上A/B測試?
進行A/B測試的主要手段是進行用戶分桶,即將用戶分成實驗組和對照組,對實驗組的用戶用新模型,對對照組的用戶用舊模型,在分桶的過程中,保證樣本的獨立性和采樣方式的無偏性,獨立性:每個用戶只能分一個桶,無偏性:隨機選擇用戶uid
3、如何劃分實驗組和對照組?
如果新研發的推薦模型是A,A上線之前正在使用的推薦模型是B,怎樣通過A/B測試來驗證推薦新模型的效果:
正確做法是將所有用戶根據用戶id的個位數劃分為實驗組和對照組,分別測試A和B模型,這樣才可驗證A的效果
五、模型評估的方法
1、在模型評估過程中,有那些主要的驗證方法?
Holdout檢驗(劃分數據一般按照7:3,訓練和測試,劃分數據存在隨機性)
交叉檢驗(幾次交叉驗證的平均值作為最終的評估指標)
自助法:樣本規模比較小,適合用自助法(n次隨機采樣,有的被抽出過,有的沒被抽出過作為驗證集),有公式證明對n個樣本進行n次自助抽樣,當n比較大時,大約有36.8%的數據從未被抽取過
六、超參數調優
主要方法:
1、網格搜索? 2、隨機搜索? 3、貝葉斯優化算法
七、過擬合和欠擬合
過擬合就是模型在訓練集合效果比較好,測試集合或新數據效果比較差
欠擬合模型在訓練數據和測試數據效果都不好
解決過擬合:
1、獲取更多訓練數據
2、降低模型復雜度
3、添加正則化方法
4、集成學習方法,如bagging方法
解決欠擬合:
1、增加特征
2、增加模型復雜度
3、減小正則化參數
?
?
?
?
總結
- 上一篇: 重温强化学习之深度强化学习
- 下一篇: pycharm调试远程服务器代码