彻底掌握准确率、精准率、召回率和ROC曲线——分类模型评估方法
分类评估方法分类模型应用的方面比较多,比如一个发生概率为90%的事件,如果只是按照准确率进行评估模型的话,那么该模型会将所有结果一律为正例反馈给你,这个准确率就高达90%了,但该模型没有实际意义。为了应对这种情况我们需要用到其他的评估方法来评价模型。
混淆矩阵我们在分类任务中,真实情况有正反两种情况,预测情况也有正反两种情况,那么真实情况和预测情况就组成了混淆矩阵。
预测正例P预测反例N真实正例TPFN真实反例FPTN其中PN代表Positive和Negative,表示预测的正例和反例;而TN代表True和False,表示预测结果与真实结果是否一致,如果一致表示T,不一致则为F。
准确率准确率就是预测正确的概率,预测正确的不管是正例还是反例,公式如下:准确率=TP+TNTP+TN+FP+FN准确率=frac{TP+TN}{TP+TN+FP+FN}准确率=TP+TN+FP+FNTP+TN
精准率Precision精准率是在模型预测为正例的这一列情况中,有多少是预测正确的,也就是真实正例是多少,公式如下:
精准率=TPTP+FP精准率=frac{TP}{TP+FP}精准率=TP+FPTP
召回率Recall召回率是真实结果为正的这一行情况中,有多少被模型预测正确,公式如下:
召回率=TPTP+FN召回率=frac{TP}{TP+FN}召回率=TP+FNTP
我们经常听到某个产品出问题,厂家要召回该产品,而需要召回的产品一般有严重缺陷的,这里我们把有问题的产品类比为真实正例,而公司确定召回为预测正例,从公司和消费者的角度来看,我们希望问题的产品都被召回,而公司也希望被召回的都是有问题的产品,所以有了召回率这一概率。
F1-ScoreF1-Score也叫F1值,是判断模型稳健性的,公式如下:F1值=2TP2TP+FN+FP=2召回率∗精准率召回率+精准率F1值=frac{2TP}{2TP+FN+FP}=frac{2召回率*精准率}{召回率+精准率}F1值=2TP+FN+FP2TP=召回率+精准率2召回率∗精准率
ROC曲线和AUC指标了解ROC曲线前,要先了解两个概念,真阳性率(TPR)和假阳性率(FPR)。
真阳性率是真实情况中正例中,被预测为1的比例,公式如下:真阳性率=TPTP+FN真阳性率=frac{TP}{TP+FN}真阳性率=TP+FNTP
假阳性率是真实情况中假例中,被预测为0的比例,公式如下:假阳性率=FPFP+TN假阳性率=frac{FP}{FP+TN}假阳性率=FP+TNFP
而ROC曲线就是以假阳性率FPR为横坐标,真阳性率TPR为纵坐标的图形。在分类模型中,我们希望该模型的假阳率越低越高,而真阳率越高越好。AUC值则表示ROC曲线到假阳性率的面积,面积越大表示分类模型的效果越好,该值的范围在0.5-1之间;其中0.5是上图的红色线,表示猜中的概率为0.5,属于乱猜的概率;而1的值则表示该分类模型对于每一种都能猜准,属于完美分类器,一般不存在。我们在调节参数时希望AUC值越高越好。
评估方法API召回率与精确率sklearn.metrics.classification_report(y_true,y_pred,labels=[],target_names=None)
y_true:真实⽬标值y_pred:估计器预测⽬标值labels:指定类别对应的数字target_names:⽬标类别名称return:每个类别精确率与召回率ROC值sklearn.metrics.roc_auc_score(y_true,y_score)计算ROC曲线⾯积,即AUC值
y_true:每个样本的真实类别,必须为0(反例),1(正例)标记y_score:预测得分,可以是正例的估计概率、置信值或者分类器⽅法的返回值人工智能(4):模型评估
模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。
按照数据集的目标值不同,可以把模型评估分为分类模型评估和回归模型评估。
1分类模型评估准确率
预测正确的数占样本总数的比例。
其他评价指标:精确率、召回率、F1-score、AUC指标等2回归模型评估
均方根误差(RootMeanSquaredError,RMSE)
RMSE是一个衡量回归模型误差率的常用公式。不过,它仅能比较误差是相同单位的模型。
举例:
假设上面的房价预测,只有五个样本,对应的
真实值为:100,120,125,230,400
预测值为:105,119,120,230,410
那么使用均方根误差求解得:
其他评价指标:相对平方误差(RelativeSquaredError,RSE)、平均绝对误差(MeanAbsoluteError,MAE)、相对绝对误差(RelativeAbsoluteError,RAE)
3拟合模型评估用于评价训练好的的模型的表现效果,其表现效果大致可以分为两类:过拟合、欠拟合。
在训练过程中,你可能会遇到如下问题:
训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢?
当算法在某个数据集当中出现这种情况,可能就出现了拟合问题。
3.1欠拟合
因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。
欠拟合(under-fitting):模型学习的太过粗糙,连训练集中的样本数据特征关系都没有学出来。
3.2过拟合
机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。
过拟合(over-fitting):所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在测试数据集中表现不佳。
4小结分类模型评估【了解】准确率
回归模型评估【了解】RMSE--均方根误差
拟合【知道】举例--判断是否是人
欠拟合
(1)学习到的东西太少
(2)模型学习的太过粗糙
过拟合
(1)学习到的东西太多
(2)学习到的特征多,不好泛化