一,scikit-learn中常用的評估模型
1.評估分類模型:
2.評估回歸模型:
二、常見模型評估解析:
•對於二分類問題,可將樣例根據其真實類別和分類器預測類別划分為:(T,F表示預測的正確與錯誤性,P,N表示預測的正類和負類)
•真正例(TruePositive,TP):真實類別為正例,預測類別為正例。
•假正例(FalsePositive,FP):真實類別為負例,預測類別為正例。
•假負例(FalseNegative,FN):真實類別為正例,預測類別為負例。
•真負例(TrueNegative,TN):真實類別為負例,預測類別為負例。
•構建混淆矩陣(ConfusionMatrix):
•識別精確度(accuracy)
•Accuracy=(TP+FN)/(TP+TN+FP+FN)×100%
•准確率(precision):
•召回率(recall):
•
•F1值:精確度和召回率的調和平均值
•precision 和 recall 都是越高越好。精確度和召回率都高時,F1 值也會高. F1 值在1時達到最佳值(完美的精確度和召回率),最差為0.在二元分類中,F1 是測試准確度的量度。
classification_report 的主要參數:
| 真實值 | 預測值 |
| 0 | 0 |
| 1 | 2 |
| 2 | 0 |
| 2 | 2 |
| 1 | 1 |
| 0 | 0 |
先計算label 0:即reports的class0
計算precision准確率時,只看分類標簽是 0 的預測值,如圖有 3 個,再看其預測成功的個數 ,有2個,所以准確率為 0.67
計算recall召回率時:只看分類標簽是0 的真實值,如圖有2 個,再看其預測成功的個數, 有2 個,所以召回率為 1
結合p 和 r 計算 F1值
同理:計算label 1 和label 2
1).回歸模型評估:
•1.均方根誤差(RootMean Squared Error,RMSE)
RMSE是一個衡量回歸模型誤差率的常用公式。然而,它僅能比較誤差是相同單位的模型
•由於對誤差E 進行平方,加強了數值大的誤差在指標中的作用,從而提高了指標的靈敏性。
•2.平均絕對誤差(Mean Absolute Error,MAE)
•3.平均絕對百分誤差(MeanAbsolute Percentage Error)
•一般認為MAPE小於10時,預測精度高。
•2)分類模型評估:
ROC-AUC曲線
•AUC值為ROC曲線所覆蓋的區域面積,顯然,AUC越大,分類器分類效果越好。
•AUC的物理意義
•假設分類器的輸出是樣本屬於正類的score(置信度),則AUC的物理意義為,任取一對(正、負)樣本,正樣本的score大於負樣本的score的概率。
1.ROC曲線:接受者操作特征(receiveroperating characteristic)曲線代表每個點反映着對同一個信號刺激的感受性。ROC曲線和AUC常被用來評價一個二值分類器(binaryclassifier)的優劣。
•橫軸FPR越大,代表預測正類中實際負類越多
•縱軸TPR越大,代表預測正類中實際正類也越多
•因此,曲線越靠近(0,1)點,越往對角線45度左上角偏,分類效果越好。
如何繪制ROC 曲線
當我們將threshold設置為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連接起來,就得到了ROC曲線。當threshold取值越多,ROC曲線越平滑。
其實,我們並不一定要得到每個測試樣本是正樣本的概率值,只要得到這個分類器對該測試樣本的“評分值”即可(評分值並不一定在(0,1)區間)。評分越高,表示分類器越肯定地認為這個測試樣本是正樣本,而且同時使用各個評分值作為threshold。將評分值轉化為概率更易於理解一些。
2.AUC(Areaunder roc curve)在ROC曲線下的面積,度量分類模型的好壞。
•由於ROC曲線一般都處於y=x這條直線的上方,所以AUC的取值范圍在0.5和1之間。使用AUC值作為評價標准是因為很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。
•
•首先AUC值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分類算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。當然,AUC值越大,當前的分類算法越有可能將正樣本排在負樣本前面,即能夠更好的分類。
•判定AUC 曲線的優劣:
•.90-1= very good (A)
•.80-.90= good (B)
•.70-.80= not so good (C)
•.60-.70= poor (D)
•.50-.60= fail (F)
•3.精度-召回率曲線PRC(precisionrecall curve):與ROC曲線不同的是:PRC曲線是往右上角靠攏效果較好。
•適用場景:
1. 地震的預測
對於地震的預測,我們希望的是RECALL非常高,也就是說每次地震我們都希望預測出來。這個時候我們可以犧牲PRECISION。情願發出1000次警報,把10次地震都預測正確了;也不要預測100次對了8次漏了兩次。
2. 嫌疑人定罪
基於不錯怪一個好人的原則,對於嫌疑人的定罪我們希望是非常准確的。及時有時候放過了一些罪犯(recall低),但也是值得的。
•4.如何避免過擬合:
•過擬合表現為在訓練數據上的誤差非常小,而在測試數據集上的誤差反而增大。其中原因一般是模型過於復雜,過分去擬合數據的噪聲和離群點,導致模型的泛化能力差,魯棒性差。
•常見的解決辦法:增大數據集,對模型進行正則化。
•5.交叉驗證:
•K-Folds交叉驗證:K層交叉驗證是將原始數據隨機分為K 個部分,在K 個部分中,選擇1 個作為測試集,K-1 個作為訓練集。將實驗重復K 次,每次實驗都從K 個部分選擇1 個不同的作為測試集,最后對得到的K 個實驗結果取平均。
參考:柚子皮blog
















