分类结果的评估方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/85064253

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

通常在回归问题可以采用平均绝对误差(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值

猜你喜欢

转载自blog.csdn.net/DataCastle/article/details/85064253