模型評價指標【AUC原理、roc曲線等】
分類模型評估:
指標 | 描述 | Scikit-learn函式 |
Precision | AUC | from sklearn.metrics import precision_score |
Recall | 召回率 | from sklearn.metrics import recall_score |
F1 | F1值 | from sklearn.metrics import f1_score |
Confusion Matrix | 混淆矩陣 | from sklearn.metrics import confusion_matrix |
ROC | ROC曲線 | from sklearn.metrics import confusion_matrix |
AUC | ROC曲線下的面積 | from sklearn.metrics import auc |
迴歸模型評估:
指標 | 描述 | Scikit-learn函式 |
Mean Square Error (MSE, RMSE) | 平均方差 | from sklearn.metrics import mean_squared_error |
Absolute Error (MAE, RAE) | 絕對誤差 | from sklearn.metrics import mean_absolute_error, median_absolute_error |
R-Squared | R平方值 | from sklearn.metrics import r2_score |
混淆矩陣
對於一個二分類的模型,其模型的混淆矩陣是一個2×2的矩陣。如下圖所示:
Predicted condition | Predicted condition | ||
positive | negative | ||
True condition | positive | True Positive | False Negative |
True condition | negative | False Positive | True Negative |
混淆矩陣比模型的精度的評價指標更能夠詳細地反映出模型的”好壞”。模型的精度指標,在正負樣本數量不均衡的情況下,會出現容易誤導的結果
- True Positive:真正(TP),樣本是正的正樣本,預測也是正的正樣本。
- False Negative:假負(FN),樣本是正的正樣本,預測為負的正樣本。
- False Positive:假正(FP),樣本是正的負樣本,預測為正的負樣本。
- True Negative:真負類(TN),樣本是正的負樣本,預測為負的負樣本。
Accuracy(準確率):
正確預測的正反例數 / 樣本的總數。
準確率是預測正確的結果佔總樣本的百分比,但很多專案場景不適用!最主要原因是樣本不平衡。舉個簡單例子,一個總樣本中,正樣本佔90%,負樣本佔10%,樣本嚴重不平衡。這時候如果將全部正樣本預測為正樣本,即可達到90%的準確率。所以樣本不均衡,準確率會失效。
Precision(精確率):Percision = TP/(TP+FP)
正確預測的正例數 / 預測正例總數。可理解為查準率。在預測為正的記錄中,有多少實際為正?
召回率:Recall = TP / (TP+FN)
正確預測的正例數 / 實際正例總數。可理解為查全率。在實際為正的記錄中,有多少預測為正?
Recall越高,說明有更多的正類樣本被模型預測正確,模型的效果越好。
F1 score:2/F1 = 1/Precision + 1/Recall
精確率和召回率的調和值。由於Precision和Recall是一對不可調和的矛盾,很難同時提高二者,故提出F1來試圖綜合二者,F1是P和R的調和平均。F1更接近於兩個數較小的那個,所以精確率和召回率接近時值最大。很多推薦系統會用的評測指標。
對ROC曲線、AUC的理解
True Positive Rate(真陽率)、False Positive(偽陽率):
TPRate的意義是所有真實類別為1的樣本中,預測類別為1的比例;FPRate的意義是所有真實類別為0的樣本中,預測類別為1的比例。
按照定義,AUC即ROC曲線下的面積,而ROC曲線的橫軸是FPRate,縱軸是TPRate,當二者相等時,即y=x,如下圖:
參考:
https://www.cnblogs.com/keye/p/9367347.html
https://www.zhihu.com/question/39840928