20201225

分类报告输出到csv

from sklearn.metrics import classification_report
report = classification_report(y_test, y_pred, output_dict=True)
df = pd.DataFrame(report).transpose()
df.to_csv("result.csv", index= True)

使用说明

参数

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

  • y_true:1 维数组,真实数据的分类标签
  • y_pred:1 维数组,模型预测的分类标签
  • labels:列表,需要评估的标签名称
  • target_names:列表,指定标签名称
  • sample_weight:1 维数组,不同数据点在评估结果中所占的权重
  • digits:评估报告中小数点的保留位数,如果 output_dict=True,此参数不起作用,返回的数值不作处理
  • output_dict:若真,评估结果以字典形式返回

返回

字符串或字典。

每个分类标签的精确度,召回率和 F1-score。

  • 精确度:precision,正确预测为正的,占全部预测为正的比例,TP / (TP+FP)
  • 召回率:recall,正确预测为正的,占全部实际为正的比例,TP / (TP+FN)
  • F1-score:精确率和召回率的调和平均数,2 * precision*recall / (precision+recall)

同时还会给出总体的微平均值,宏平均值和加权平均值。

  • 微平均值:micro average,所有数据结果的平均值
  • 宏平均值:macro average,所有标签结果的平均值
  • 加权平均值:weighted average,所有标签结果的加权平均值

在二分类场景中,正标签的召回率称为敏感度(sensitivity),负标签的召回率称为特异性(specificity)

鸢尾花数据集的随机森林结果评估


from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split# 鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target# [0, 1, 2] 标签转换为名称 ['setosa' 'versicolor' 'virginica']
y_labels = iris.target_names[y]# 数据集拆分为训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(X, y_labels, test_size=0.2)# 使用训练集训练模型
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)# 使用测试集预测结果
y_pred = clf.predict(X_test)# 生成文本型分类报告
print(classification_report(y_test, y_pred))
"""precision    recall  f1-score   supportsetosa       1.00      1.00      1.00        10versicolor       0.83      1.00      0.91        10virginica       1.00      0.80      0.89        10micro avg       0.93      0.93      0.93        30macro avg       0.94      0.93      0.93        30
weighted avg       0.94      0.93      0.93        30
"""# 生成字典型分类报告
report = classification_report(y_test, y_pred, output_dict=True)
for key, value in report["setosa"].items():print(f"{key:10s}:{value:10.2f}")
"""
precision :      1.00
recall    :      1.00
f1-score  :      1.00
support   :     10.00
"""

Reference

  • sklearn.metrics.classification_report
  • 准确率、精确率、召回率、F1值、ROC/AUC整理笔记

20201207

precision    recall  f1-score   support

0       0.94      0.98      0.96      5259

1       0.06      0.02      0.03       307

accuracy                          0.93      5566

macro avg       0.50      0.50     0.49      5566

weighted avg       0.90      0.93      0.91      5566

precision 是精准率

准确率是所有预测正确处于总数

scikit-learn - 分类模型的评估 (classification_report)相关推荐

  1. 机器学习模型评估的方法总结(回归、分类模型的评估)

    建模的评估一般可以分为回归.分类和聚类的评估,本文主要介绍回归和分类的模型评估: 一.回归模型的评估 主要有以下方法: 指标 描述 metrics方法 Mean Absolute Error(MAE) ...

  2. R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)

    R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray.F1.偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机) ...

  3. 回归和分类模型性能评估指标MSE,MAE,PR,ROC,AUC

    文章目录 0. 模型评估是什么,为什么 1. 不同类型问题的评估指标 1.1 回归问题 1.2 分类问题 1.2.1 准确率和错误率 1.2.2 精确率和召回率 1.2.3 PR曲线图 1.2.4 F ...

  4. Python scikit-learn,分类模型的评估,精确率和召回率,classification_report

    分类模型的评估标准一般最常见使用的是准确率(estimator.score()),即预测结果正确的百分比. 混淆矩阵: 准确率是相对所有分类结果:精确率.召回率.F1-score是相对于某一个分类的预 ...

  5. weka使用训练集分类测试集_科学网—使用独立测试集对分类模型进行评估 - 李向东的博文...

    这两天还是纠结于分类模型的准确率.因为对从网上随机摘录的文本进行分类时,结果总是不甚理想,不像使用cross-validation得到的结果那么好. 于是决定使用独立测试集(含1402个实例)进行评估 ...

  6. 机器学习:分类模型的评估精确率Presicion和召回率Recall

    estimator.score() 准确率:预测结果正确的百分比 混淆矩阵 预测结果Predicted Condition 正确标记 True Condition 预测结果 正例 假例 真实 正例 真 ...

  7. 一文看懂分类模型的评估指标:准确率、精准率、召回率、F1等

    2019-11-21 21:59:23 机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准 ...

  8. 分类模型的评估指标(2)---ROC曲线与AUC简介

    首先,我们需要了解一下,什么是ROC曲线? ROC曲线,即受试者工作特征曲线(Receiver Operating Characteristic curve,简称ROC曲线,是根据一系列不同的二分类方 ...

  9. 你真的了解分类模型评估指标都有哪些吗?【附Python代码实现】

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 必看前言 ...

最新文章

  1. AI基础:入门人工智能必看的论文【附下载链接】
  2. powershell的一个小游戏,看看能写几种方式出来
  3. Shell脚本编程剖析(更新完毕)
  4. 在双系统(Windows与Ubuntu)下删除Ubuntu启动项
  5. 暑期学校 | 东南大学2021年国际暑期学校项目:从感知理解到智能认知 (知识图谱及应用课程)...
  6. Android 手机app缓存清理实现
  7. 08_提升方法Boosting1_统计学习方法
  8. 1.Nginx 简介
  9. 网络操控软件兴起:思科利润率受压
  10. Mysql统计同一字段不同值的个数
  11. ETL工具kettle之Java脚本+Elasticsearch bulk insert
  12. 基于MATLAB的条形码二维码检测系统
  13. python中字典的定义和操作
  14. edwin报警和监控平台近期的更新(python源码)
  15. Delphi xe7组件和控件的安装方法
  16. linux公社_又一个Linux发行版宣告死亡!曾经是最好的桌面版BSD操作系统
  17. android 改变输入法enter键文字 为搜索 下一个 以及前往
  18. 如何从Google迁移到Amazon应用内购买
  19. C++ 简化 推箱子 小游戏 完整代码 参考网络资料 命令行运行 仅供初学者参考交流
  20. pyecharts终于更新啦!| pyecharts-Map3D画3D立体地图

热门文章

  1. 2022-2028年中国EMI膜产业发展态势及市场发展策略报告
  2. 2022-2028年中国在线旅行预订市场投资分析及前景预测报告
  3. python中的新式类与旧式类的一些基于descriptor的概念(上)
  4. Windows中配置java变量环境
  5. 提高期——SLA实践指导秘籍
  6. msql每个数据前面添加某个字符串查询或者更新
  7. 浅谈Transformer 及Attention网络
  8. 八种基本类型的包装类你真的懂了?
  9. 自动驾驶QNX,Linux,Autosar概述
  10. CUDA运行时 Runtime(二)