美文网首页
(二)sklearn.metrics模型性能评价

(二)sklearn.metrics模型性能评价

作者: 神经网络爱好者 | 来源:发表于2019-11-01 16:48 被阅读0次

目录

1、模型评价指标
2、sklearn.metrics.classification_report的使用
3、混淆矩阵的使用

1、模型评价指标

  准确率(accuracy):分对的样本数除以所有的样本数 。
准确率=\frac{分类正确的样本数}{样本总数}
准确率一般用来评估模型的全局准确程度,不能包含太多信息,全面评价一个模型,其中混淆矩阵是一个常用的手段。


  precision(查准率):预测为正的样本当中有多少预测准确了。
P=\frac{TP}{TP+FP}
  recall(查全率):真正为正的样本当中有多少被预测准确了了。
R=\frac{TP}{TP+FN}

对于实际多分类问题:
如果类别A的P很低,R很高,则表示有其他类别的样本大量被预测为A,可能是类别之间很相似,也可能是数据集分错了;
如果类别A的P很高,R很低,则表示类别A的样本被预测为其他类了。

因此为了综合P和R,可以使用Fα-Score:
F_ \alpha = (1+\alpha^2)\frac{PR}{\alpha^2·P+R}
如果\alpha小于1则侧重P,大于1侧重R,等于1相当于调和平均数,F1-Score.

2、sklearn.metrics.classification_report的使用

classfication_report函数以文本的方式给出了分类结果的主要预测性能指标。其原型为:

sklearn.metrics.classification_report(y_true, y_pred, labels=None, target_names=None,
sample_weight=None, digits=2)

返回值:一个格式化的字符串,给出了分类评估报告。
参数:

  • y_true:真实的标记集合。
  • y_pred:预测的标记集合。
  • labels:一个列表,指定报告中出现哪些类别。
  • target_names:一个列表,指定报告中类别对应的显示出来的名字。
  • digits:用于格式化报告中的浮点数,保留几位小数。
  • sample_weight:样本权重,默认每个样本的权重为 1。
from sklearn.metrics import classification_report

y_true = [0, 1, 2, 2, 2]
y_pred = [0, 1, 2, 2, 1]
label = [0, 1, 2]
target_names = ['class 0', 'class 1', 'class 2']
print((classification_report(y_true, y_pred, labels=label, target_names=target_names)))

此时的程序输出如下:

                precision    recall  f1-score   support
    class 0       1.00      1.00      1.00         1
    class 1       0.50      1.00      0.67         1
    class 2       1.00      0.67      0.80         3
avg / total       0.90      0.80      0.81         5

如果使label=[0,1],则得到的输出如下:

                 precision    recall  f1-score   support
    class 0       1.00      1.00      1.00         1
    class 1       0.50      1.00      0.67         1
avg / total       0.75      1.00      0.83         2

3、混淆矩阵的使用

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix

y_true = [0, 1, 2, 2, 2]
y_pred = [0, 1, 2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']

#混淆矩阵
sns.set()
f,ax = plt.subplots()
colormap = sns.cm.rocket_r#sns.cubehelix_palette(as_cmap=True,reverse=False)
C2 = confusion_matrix(y_true, y_pred)
C2 = pd.DataFrame(C2, index=target_names, columns=target_names)
sns.heatmap(C2, annot=True, ax=ax, cmap=colormap) #画热力图
ax.set_title('confusion matrix') #标题
ax.set_xlabel('predict') #x轴
ax.set_ylabel('true') #y轴
plt.show()

得到的图片如下:


confusion matrix

相关文章

  • (二)sklearn.metrics模型性能评价

    目录 1、模型评价指标2、sklearn.metrics.classification_report的使用3、混淆...

  • 自然语言处理中的若干问题

    一、语言模型 链接地址(一)N元语言模型 链接地址(二)语言模型性能评价 链接地址(三)数据平滑 链接地址(四)语...

  • 分类器评估方法

    使用sklearn.metrics包中的性能度量函数 分类器性能指标 回归器性能指标 聚类器性能指标 两两距离测度...

  • 模型性能度量方法

    备注 性能度量即是找到一个评价标准,来对模型的泛化能力进行量化评价。 不同的性能度量标准往往会有不同的...

  • 数据挖掘3

    建模调参 内容介绍 线性回归模型:线性回归对于特征的要求;处理长尾分布;理解线性回归模型; 模型性能验证:评价函数...

  • 零基础入门数据挖掘-Task4 建模调参

    内容介绍 线性回归模型:线性回归对于特征的要求;处理长尾分布;理解线性回归模型; 模型性能验证:评价函数与目标函数...

  • 2020-04-01

    线性回归模型:线性回归对于特征的要求;处理长尾分布;理解线性回归模型;模型性能验证:评价函数与目标函数;交叉验证方...

  • 从宏观上了解机器学习-模型评估与选择2

    性能度量 对模型泛化能力的评价标准就是性能度量,在预测任务中,要评估学习器的性能,就是要把学习器预测结果与真实标记...

  • 分类模型性能评价及选择

    这里我们有两个概念,伪阴性和伪阳性,前者是实际发生了但是预测没有发生,所以叫伪阴性,又称耳机错误,实际中后果比一级...

  • 【机器学习与R语言】12- 如何评估模型的性能?

    1.评估分类方法的性能 拥有能够度量实用性而不是原始准确度的模型性能评价方法是至关重要的。 3种数据类型评价分类器...

网友评论

      本文标题:(二)sklearn.metrics模型性能评价

      本文链接:https://www.haomeiwen.com/subject/bkzxbctx.html