【机器学习】分类器性能度量——混淆矩阵及sklearn实现

这篇具有很好参考价值的文章主要介绍了【机器学习】分类器性能度量——混淆矩阵及sklearn实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录一下混淆矩阵的学习心得,不写下来老是容易搞混..

I. 理论解析

机器学习中,考量二分类问题的分类器性能时,可以将样本的实际类别与分类器预测类别,划分为如下 TN, FP, FN, TP 四种结果,组合起来就是大名鼎鼎的 confusion matrix 混淆矩阵。其中:

True,False 表示预测结果与实际分类是否一致:一致为True,不一致为False;

Positive,Negative 表示预测结果的类别:通常class 1 为Positive,class 0 为Negative

混淆矩阵 预测值
0(-) 1(+)
实际值

0(-)

True Negative (TN) False Positive (FP)
1(+) False Negative (FN) True Positive (TP)

画出混淆矩阵后,就可以根据矩阵,计算相应的度量指标了,主要有准确率(Accuracy),召回率(Recall),精确率(Precision)三大金刚。

PS: 看了太多不同的叫法,本来就容易混淆,叫法一多更蒙圈了,感觉还是叫英文直观一点

1. 准确率 (Accuracy)

所有预测正确的样本,占总样本的比例。

【机器学习】分类器性能度量——混淆矩阵及sklearn实现

准确率关注整体(正样本 + 负样本)的预测准确程度。但在样本不均衡时,准确率有很大的局限性,此时高accuracy无太大意义。例如在实际生活中,大多数信用卡客户都不会违约(class 0),违约的只是少数(class 1)。用分类器预测信用卡客户是否会违约时,即便把所有样本都预测为不违约(class 0)也可以获得很高的准确率,但这对于风控模型来说,毫无参考价值。

2. 召回率 (Recall)

针对原样本而言,在所有实际为正(class 1)的样本中,被预测为正的样本比例。

【机器学习】分类器性能度量——混淆矩阵及sklearn实现

 又称为sensitivity rate,true positive rate(TPR),查全率。这个指标关注更多的是查全,不要有漏检的情况,宁可错杀一千,不能放过一个

3. 精确率 (Precision)

针对预测样本而言,在所有被预测为正(class 1)的样本中,实际为正(class 1)的样本比例。

【机器学习】分类器性能度量——混淆矩阵及sklearn实现

又称为 positive predictive rate,查准率。更关注正样本结果中的预测准确程度,宁愿漏检,也不愿意预测错误。

召回率 与 精确率 Trade-off

召回率(查全率)与精确率(查准率)是一对矛盾的变量,二者相互制约,此消彼长。

以下表为例,假设 t=1 代表客户违约,用A,B 两个分类器进行预测

t actual 0 0 0 0 0 1 0 1 0 1
t predicted-A 0 1 1 1 1 1 1 1 1 1
t predicted-B 0 0 0 0 0 0 0 1 0 0

模型 A: 宁可错杀,不能放过,即便没有很确定,也判断该客户会违约。此时分类器高召回率,低精确率。

recall = TP / 实际为正 = 3/3 = 100%,

precision = TP / 预测为正 = 3/9 = 33.33%

模型B: 宁可漏过,不能错判,只在非常确定的情况下,才判断客户违约。此时分类器低召回率,高精确率。

recall = 1/3 = 33.33%,

precision = 1/1 = 100%

4. F-Score  

Fβ-score 是综合考虑召回率与精确率的一个加权调和平均指标,平衡召回率、精确率。F-score分数越高,说明模型质量越好。具体公式如下:

 【机器学习】分类器性能度量——混淆矩阵及sklearn实现

其中,β代表对召回率、精确率的不同重视程度:

β=1,二者一样重要,此时即为F1-Score;

β<1,精确率更为重要。比如在经济整体向好时,希望准确判断违约客户,以放出更多的贷款,提升利息收益;

β>1,召回率更为重要。经济状况不好时,更希望尽可能少漏掉违约客户,即更多的找出违约客户,避免本金损失。

II. python实现

实用角度出发,直接调用sklearn包,查看分类结果

from sklearn.metrics import classification_report
print(classification_report(y_test, pred_log, digits=3)) 

# y_test是划分出的测试集
# pred_log是依据分类器预测出的结果
# 通常保留3位小数便于比较

输出结果如下:

【机器学习】分类器性能度量——混淆矩阵及sklearn实现文章来源地址https://www.toymoban.com/news/detail-499827.html

到了这里,关于【机器学习】分类器性能度量——混淆矩阵及sklearn实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)

    混淆矩阵(Confusion Matrix):将分类问题按照真实情况与判别情况两个维度进行归类的一个矩阵,如在二分类问题中就是一个2*2的矩阵: TP(True Positive):表示实际为真预测为真 FP(False Positive):表示实际为假预测为真 (误报) TN(True Negative):表示实际为假预测为假 FN(False N

    2024年01月24日
    浏览(48)
  • 机器学习模型优劣评价指标:混淆矩阵,P-R曲线与平均精确度(附代码实现)

    文章参考:Mean Average Precision (mAP) Explained | Paperspace Blog 目录 一. Confusion Metrics混淆矩阵 二. Precision-Recall Curve, Average precision P-R曲线,平均精确度 三. 举例与代码实现 (1)从预测分数到类别标签(From Prediction Score to Class Label) (2)精确度-召回度曲线(Precision-Recall Curve) (3)平均

    2024年02月05日
    浏览(45)
  • 机器学习 | 混淆矩阵和ROC曲线

    (1)对于二分类 TP(True Positive):将正类预测为正类数,真实为0,预测也为0 FN(False Negative):将正类预测为负类数,真实为0,预测为1 FP(False Positive):将负类预测为正类数, 真实为1,预测为0 TN(True Negative):将负类预测为负类数,真实为1,预测也为1 则混淆矩阵如下: (2)对

    2024年01月21日
    浏览(48)
  • python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    数据预处理的过程。数据存在不同的量纲、数据中存在离群值,需要稳定的转换数据,处理好的数据才能更好的去训练模型,减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器学习算法来说是常见的要求,很多案例都需要标准化。如果个别特征或多或

    2024年02月16日
    浏览(46)
  • 【机器学习sklearn】第二节:线性回归和线性分类

    作者 🕵️‍♂️:让机器理解语言か   专栏 🎇:机器学习sklearn 描述 🎨:本专栏主要分享博主学习机器学习的笔记和一些心得体会。 寄语 💓:🐾没有白走的路,每一步都算数!🐾          监督学习(英语:Supervised learning)是机器学习中最为常见、应用最为广泛的

    2023年04月26日
    浏览(62)
  • 【Python机器学习】sklearn.datasets分类任务数据集

    如何选择合适的数据集进行机器学习的分类任务? 选择合适的数据集是进行任何机器学习项目的第一步,特别是分类任务。数据集是机器学习任务成功的基础。没有数据,最先进的算法也无从谈起。 本文将专注于 sklearn.datasets 模块中用于分类任务的数据集。这些数据集覆盖

    2024年02月07日
    浏览(45)
  • 一文带你搞懂sklearn.metrics混淆矩阵

    一般的二分类任务需要的评价指标有4个 accuracy precision recall f1-score 四个指标的计算公式如下   计算这些指标要涉及到下面这四个概念,而它们又构成了混淆矩阵 TP (True Positive) FP (False Positive) TN (True Negative) FN (False Negative) 混淆矩阵 预测值 0 1 实际值 0 TN FP 1 FN TP 这里我给出的

    2024年02月06日
    浏览(42)
  • python机器学习(六)决策树(上) 构造树、信息熵的分类和度量、信息增益、CART算法、剪枝

    模拟相亲的过程,通过相亲决策图,男的去相亲,会先选择性别为女的,然后依次根据年龄、长相、收入、职业等信息对相亲的另一方有所了解。 通过决策图可以发现,生活中面临各种各样的选择,基于我们的经验和自身需求进行一些筛选,把判断背后的逻辑整理成结构图,

    2024年02月14日
    浏览(49)
  • 机器学习基础之《分类算法(1)—sklearn转换器和估计器》

    一、转换器 1、什么是转换器 之前做特征工程的步骤: (1)第一步就是实例化了一个转换器类(Transformer) (2)第二步就是调用fit_transform,进行数据的转换 2、我们把特征工程的接口称之为转换器,其中转换器调用有这么几种形式 fit_transform() fit() transform() 3、例子 我们以标

    2024年02月12日
    浏览(36)
  • 【Pytorch】进阶学习:深入解析 sklearn.metrics 中的 classification_report 函数---分类性能评估的利器

    【Pytorch】进阶学习:深入解析 sklearn.metrics 中的 classification_report 函数—分类性能评估的利器 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文

    2024年03月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包