分类结果的评估方法

论坛 期权论坛 脚本     
匿名技术用户   2020-12-21 23:17   11   0

模型评估可以用在模型类型、调节参数及特征组合中。通过模型评估来估计训练得到的模型对于非样本数据的泛化能力,并且还需要恰当的模型评估度量手段来衡量模型的性能表现。

通常在回归问题可以采用平均绝对误差(Mean Absolute Error)、均方误差(Mean Squared Error)、均方根误差(Root Mean Squared Error),而分类问题则采用分类准确率混淆矩阵的方法,也就是今天要讲述的方法。

分类准确率

分类准确率分数是指所有分类正确的百分比。sklearn库中有直接调用它的方法

sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)

参数 含义
y_ture 真实标签值
y_pred 预测标签值
normalize 返回结果的形式,False返回正确分类的样本数,True返回正确分类样本的分数
sample_weight 样本权重

分类准确率可能是一个较好的结果评估方法,但却不是一个好的模型度量方法,不能通过它观察任何有关测试数据的潜在分布。

换句话说,该训练的模型可能会在比例较高的那项类别的预测中预测正确,而在另外一种类别的预测中预测失败,而我们没法从分类准确率这项指标中发现这个问题。

那么就得通过混淆矩阵来解决这个问题。

混淆矩阵

混淆矩阵可以理解为就是一张表格,话不多说,先把表格放上。(positive代表1,negative代表0,即一般的二分类问题)

真实值

positive negative

预测值

positive TP FP
negative FN TN
  • True Positive(TP): 被正确预测为正类的正类样本数量;
  • False Positive(FP): 被错误预测为负类的正类样本数量;
  • False Negative(FN): 被错误预测为正类的负类样本数量;
  • True Negative(TN): 被正确预测为负类的负类样本数量。

只通过这些数据可能无法直观的观察模型的优劣,则需要下面的四个指标:

准确率(Accuracy): 评价分类器性能的一般性指标就是分类的准确率,它统计的是在给定的测试集上,分类器正确分类的样本数与总测试样本数之比

Accuracy=TP+TN/TP+FN+TN+FP

精确率(Precision): 精确率在数据挖掘中也可以称为置信度,它关注的是在给定的测试数据集上,被正确预测为正类的样本数占总的被预测为正类样本数的比例

Precision= TP/(TP+FP)

召回率 (Recall): 召回率,又可以称为查全率,它关注的是在给定的测试数据集上,被正确预测为正类的样本数占测试数据中正类样本数的比例

Recall= TP/(TP+FN)

F1分数(F1 scoreF1 measure): F1分数是精确率和召回率的调和均值:

F1 score=2*(precision*recall)/(precision+recall)=2TP/(2TP+FP+FN)

同样的,sklearn也提供了相应的工具以便直接使用:

准确率:sklearn.metrics.accuracy_score(y_test, y_pred)
精确率:sklearn.metrics.precision_score(y_test, y_pred)
召回率:sklearn.metrics.recall_score(y_test, y_pred)
F1分数:sklearn.metrics.f1_score(y_test, y_pred)

混淆矩阵使得我们对一个分类器性能的表现有了更全面的认识,同时通过计算各种分类后的指标,进行模型选择。

除此之外,还有另外两个指标ROC曲线和AUC值,感兴趣的同学可参考ROC曲线和AUC面积理解ROC曲线与AUC值

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP