機器學習模型評估
1、混淆矩陣
在分類任務下,預測結果(Predicted Condition)與正確標記(True Condition)之間存在四種不同的組合,構成混淆矩陣(適用於多分類)
2、準確率、精確率、召回率、F1-score
準確率:score = estimator.score(x_test, y_test) #比對預測值與真實值,判斷正確的概率
精確率 precision:預測結果爲正例樣本中真實爲正例的比例
召回率recall:真實爲正例的樣本中預測結果爲正例的比例(查得全,對正樣本的區分能力)
F1-score:反應模型的穩健性
3、分類評估報告API
·sklearn.metrics.classification_report(y_true,y_pred,labels=[],target_names=None)
。y_true:真實目標值
。y_pred:估計器預測目標值
。labels:指定類別對應的數字
。target_names:目標類別名稱
。return:每個類別籍確率與召回率
4、ROC曲線和AUC值
TPR = TP /(TP+FN) :所有真實類別爲1樣本中,預測類別爲1的比例
FPR = FP /(FP+TN) :所有真實類別爲0樣本中,預測類別爲1的比例
ROC曲線:
ROC曲線的橫軸就是FPRate,縱軸就是TPRate,當二者相等時,表示的意義則是:
對於不論真實類別是1還是0的樣本,分類器預測爲1的概率是相等的,此時AUC爲0.5
AUC:樣本不均勻的情況下衡量模型的好壞
·AUC的概率意義是隨機取一對正負樣本,正樣本得分大於負樣本的概率
·AUC的最小值爲0.5,最大值爲1,取值越高越好
·AUC=1,完美分類器,採用這個預別模型時,不管設定什麼閥值都能得出完美預測。絕大多數預測的場合,不存在完美分類器。
·0.5<AUC<1,優於隨機猜測,這個分類器(模型)妥善設定閥值的話,能有預測價值。
AUC只能用來評價二分類
AUC非常適合評價樣本不平衡中的分類器性能
5、AUC計算API
·from sklearn.metrics import roc_auc_score
。sklearn.metrics.roc_auc_score(y_true,y_score)y
·計算ROC曲線面積,即AUC值
·y_true:每個樣本的真實類別,必須爲0(反例),1(正例)標記
·y_score:每個樣本的預測值,通常y_score=y_predict = estimator.predict(x_test)
6、案例:
案例:https://blog.csdn.net/weixin_41685388/article/details/104498058