机器学习模型评估
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