机器学习中的分类问题:如何选择和理解性能衡量标准

【理解机器学习算法】之分类问题的模型评估(基础概念) 本人就职海外从事人工智能领域开发设计。希望花时间总结下流行的机器学习算法,希望大家一起学习,欢迎指正! 阅读详情

🍋引言

当涉及到机器学习和数据科学中的分类问题时,评估模型的性能至关重要。选择适当的性能衡量标准有助于我们了解模型的效果,并作出有根据的决策。本博客将介绍一些常用的分类问题衡量标准,以及它们在不同情境下的应用。

🍋为什么需要分类问题的性能衡量标准?

在机器学习中,分类问题是一类非常常见的任务。它包括将数据点分为两个或多个不同的类别或标签。例如,我们可以使用分类算法来预测电子邮件是否为垃圾邮件,患者是否患有某种疾病,图像中的对象是什么等等。对于这些问题,我们需要一种方式来评估模型的性能,以便选择最合适的模型、调整参数,并最终在实际应用中做出可靠的决策。

🍋常用的分类问题衡量标准

以下是一些常用的分类问题性能衡量标准:

  • 准确度(Accuracy):
    准确度是最简单的性能衡量标准之一。它表示模型正确分类的样本数与总样本数之比。
    适用情况:准确度适用于各个类别数量差距不大的情况,其中每个类别的重要性相似。

  • 精确率(Precision):
    精确率是指模型正确预测正类别样本的比例,它是真正例(True Positives, TP)与真正例与假正例之和(TP + False Positives, FP)的比值。
    适用情况:当假正例的成本很高时,精确率是一个重要的度量标准,例如,医学诊断中。

  • 召回率(Recall):
    召回率是指模型正确预测正类别样本的比例,它是真正例(TP)与真正例与假负例(False Negatives, FN)之和的比值。
    适用情况:当假负例的成本很高时,召回率是一个关键的性能度量,例如,安全检测中。

  • F1分数(F1 Score):
    F1分数是精确率和召回率的调和平均值,它可以平衡精确率和召回率之间的权衡关系。
    适用情况:在需要同时考虑精确率和召回率的情况下,F1分数是一个有用的度量标准。

  • ROC曲线和AUC(Receiver Operating Characteristic Curve and Area Under Curve):
    ROC曲线是一个用于可视化分类器性能的工具,而AUC是ROC曲线下的面积,用于量化分类器的性能。
    适用情况:ROC曲线和AUC通常用于二进制分类问题,特别是在不同阈值下比较模型性能时。

🍋混淆矩阵-精确率-召回率

首先需要导入一个库,其实就是精确率、召回率、混淆矩阵,还有一些必要的库

from sklearn.metrics import precision_score,recall_score,confusion_matrix
from sklearn.datasets import load_digits
import numpy as np
from sklearn.model_selection import train_test_split

接下来我们准备数据

digits  =load_digits()
y = digits.target.copy()
X = digits.data
y [digits.target==8]=1
y [digits.target!=8]=0

y采取copy是因为,后面会报错,所以还是不要在原数据进行修改

这段代码的主要目的是将手写数字数据集转化为一个二元分类问题,其中目标是判断一个手写数字是否为数字8(标签为1)或不是数字8(标签为0)

接下来进行数据集切割,并进行拟合

X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=666)
log_reg = LogisticRegression(max_iter=1000)
log_reg.fit(X_train,y_train)

max_iter参数用于指定模型训练的最大迭代次数,这里设置为1000,以确保模型在训练期间能够收敛到一个合适的解。

接下来进行准确率的计算,混淆矩阵的生成,以及精确率、召回率的计算

log_reg.score(X_test,y_test)

运行结果如下

在这里插入图片描述

confusion_matrix(y_test,log_reg.predict(X_test))

运行结果如下
在这里插入图片描述

precision_score(y_test,log_reg.predict(X_test))

运行结果如下
在这里插入图片描述

recall_score(y_test,log_reg.predict(X_test))

运行结果如下
在这里插入图片描述

最后我们来看看f1的情况,这里我们需要导入一个库

from sklearn.metrics import f1_score
f1_score(y_test,log_reg.predict(X_test))

运行结果如下

在这里插入图片描述

🍋PR曲线和ROC曲线

🍋PR曲线

PR曲线是评估二分类模型性能的一种重要工具。它关注的是模型在正类别上的性能,特别是在识别正类别时的准确性和召回率。

准确性(Precision是指模型将正类别的样本正确分类为正类别的比例。它的计算公式如下:

Precision=TPTP+FPPrecision=TP+FPTP​

其中, T P TP TP代表真正例(True Positives), F P FP FP代表假正例(False Positives)。

召回率(Recall是指模型成功识别正类别的样本的比例。它的计算公式如下:

Recall=TPTP+FNRecall=TP+FNTP​

其中, F N FN FN代表假阴性(False Negatives)。

PR曲线以不同的阈值作为横轴,Precision和Recall作为纵轴,通过绘制不同阈值下的Precision-Recall点来可视化模型性能。一条PR曲线越靠近左上角,模型性能越好。

具体实现如下
接下来我们使用如下代码计算逻辑回归模型在测试数据集 X_test 上的决策函数值

log_reg.decision_function(X_test)[:5]

之后我们导一下库

from sklearn.metrics import precision_recall_curve

并且调用这个曲线,并将数据保存在定义的三个变量中

pre,recall,thresholds = precision_recall_curve(y_test,log_reg.decision_function(X_test))

然后我们绘制一下

import matplotlib.pyplot as plt
plt.plot(pre,recall)

运行结果如下
在这里插入图片描述

🍋ROC曲线

ROC曲线是另一种用于评估分类模型性能的工具,它关注的是模型的真正例率(True Positive Rate)和假正例率(False Positive Rate)。

真正例率(True Positive Rate,也称为召回率是指模型成功识别正类别的样本的比例,计算方式与PR曲线中的Recall相同。

假正例率(False Positive Rate是指模型错误地将负类别的样本分类为正类别的比例,计算方式如下:

FPR=FPFP+TNFPR=FP+TNFP​

其中, F P FP FP代表假正例(False Positives), T N TN TN代表真负例(True Negatives)。

ROC曲线以不同的阈值作为横轴,True Positive Rate作为纵轴,通过绘制不同阈值下的True Positive Rate和False Positive Rate点来可视化模型性能。一条ROC曲线越靠近左上角,模型性能越好。
绘制ROC曲线与PR曲线类似

from sklearn.metrics import roc_curve,roc_auc_score
fpr,tpr,thresholds =  roc_curve(y_test,log_reg.decision_function(X_test))
plt.plot(fpr,tpr)

运行结果如下
在这里插入图片描述

这里也可以看看ROC曲线的面积情况
一般来说,AUC越接近1,模型性能越好

roc_auc_score(y_test,log_reg.decision_function(X_test))

运行结果如下
在这里插入图片描述

🍋PR vs. ROC

PR曲线和ROC曲线都有其独特的用途和适用场景。PR曲线更适合于不平衡类别分布的问题,因为它关注的是正类别的准确性和召回率。ROC曲线在不同类别之间的代价不平衡问题中表现较好,因为它关注的是True Positive Rate和False Positive Rate。

绘制这两种曲线的过程相似,通常需要使用模型的预测概率来确定不同的阈值,并计算相应的性能指标。在Python中,您可以使用Scikit-Learn库来轻松生成这些曲线。

🍋根据情境选择适当的性能度量

在选择性能度量标准时,需要考虑问题的具体情境和目标。不同的问题可能需要不同的度量标准。例如,如果我们正在处理医学诊断问题,其中假负例可能导致严重后果,那么我们可能更关注召回率。另一方面,如果我们正在过滤垃圾邮件,我们可能更关注精确率,因为将合法邮件错误地标记为垃圾邮件可能会引起麻烦。

此外,有时候需要综合考虑多个性能度量标准。例如,使用F1分数来平衡精确率和召回率,或者使用ROC曲线和AUC来评估模型在不同阈值下的性能表现。

请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

深度学习的性能评价指标---图像分类的评价指标 图像分类的评价指标 图像分类的概念:是一个模式分类的问题,将不同的图像(注意单位,是一张图像,最后理解的如手写体的图像集)划分到不同的类别、单标签分类问题就是每一张图都有唯一的类别; 单标签分类的评价指标有:准确率(Accuracy),精确率(Precision),召回率(Recall),F1-score,混淆矩阵,ROC曲线和AUC; 在计算这些指标之前,需要先计算几个基本的指标: TP:正样本且分类为正样本的数目为(True Positive) FN:标签为正样本分类为负样本... 阅读详情

相关推荐

机器学习——线性回归算法的衡量标准及评价:MSE、RMSE、MAE、R Square

对于回归算法的衡量 线性回归算法的目标是找到参数a和b,使得 ∑i=1m(yi train−axi train−b)2\displaystyle \sum^{m}_{i=1}(y^i~train - ax^i~train - b)^2i=1∑m​(yi train−axi train−b)2 尽可能小。 y^i test\hat y^i~testy...

Liuyt_61的博客 3107

【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)

机器学习模型评估是机器学习领域中的一个重要研究方向,其研究背景在于随着大数据时代的到来,人们面临着越来越多的数据分析和处理任务,而机器学习作为一种高效的数据处理技术,在很多领域都得到了广泛应用。然而,机器学习模型的效果评估是机器学习应用过程中一个非常关键的问题,因此机器学习模型评估的研究具有非常重要的意义。

z135733的博客 2万+

【技术教程】 理解混淆矩阵:机器学习的强大工具

在机器学习和数据科学领域,预测结果的准确性十分重要,因此,评估预测模型的性能好坏也尤为关键,而在分类型模型评判的指标中,常见的方法有如下三种:混淆矩阵(也称误差矩阵,Confusion Matrix)、ROC曲线、AUC面积。混淆矩阵用处广泛,是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。

LFSJXS的博客 1001

机器学习分类算法常用评价指标

https://www.cnblogs.com/asialee/p/9800039.html 1. 准确率,召回率,精确率,F1-score,Fβ,ROC曲线,AUC值 为了评价模型以及在不同研究者之间进行性能比较,需要统一的评价标准。根据数据挖掘理论的一般方法,评价模型预测能力最广泛使用的是二维混淆矩阵(Confusion matrix)(如下表所示)。 二维混淆矩阵 真实类别 ...

zdy0_2004的专栏 7106

机器学习中回归问题的性能指标

一般评价指标主要有:MSE(平均平方误差)、RMSE(平方根误差)、MAE(平均绝对误差)、R2_score。

weixin_57038791的博客 1795

数据建模中的模型性能评估:如何评估模型的性能和性能

作者:禅与计算机程序设计艺术 数据建模作为一个重要环节,其目的就是为了通过对已知数据建立模型,来对未知数据进行预测或分类。然而,建模过程本身就具有一定的随机性、不确定性和不可重复性,如何准确地评价模型的性能是建模中的关键环节。一般来说,数据建模的模型性能评估可以分为以下几类: 1)预测性能评估(Predictive Perf

AI天才研究院 4193

分类中对数据标准化

function [data, minv, maxv] = ScaleFeature( data, minv, maxv )     if nargin == 1         minv = min(data);         maxv = max(data);     end          nsample = size(data, 1);     data = (data

apsvvfb的专栏 979

标题1:理解机器学习中的过拟合和欠拟合

作者:禅与计算机程序设计艺术 1.简介 在机器学习中,“过拟合”(overfitting)是一个经常出现的问题,它意味着模型已经过于复杂了,而且对于训练集的数据而言,它的预测能力很差。换句话说,就是模型把训练数据都学到了,但对于新的数据却不一定有效。相反地,“欠拟合”(underfitting)指的是模

AI天才研究院 956

python编程标准化_Python数据预处理:彻底理解标准化和归一化

数据预处理数据中不同特征的量纲可能不一致,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,因此,需要对数据按照一定比例进行缩放,使之落在一个特定的区域,便于进行综合分析。常用的方法有两种:最大 - 最小规范化:对原始数据进行线性变换,将数据映射到[0,1]区间Z-@R_502_182@标准化:将原始数据映射到均值为0、标准差为1的分布上为什么要标准化/归一化?提升模型精度:标准化/归一...

weixin_39524984的博客 388

OrangePi Kunpeng Pro 安装 ROS2 + Gazebo

OrangePi Kunpeng Pro 的优点很明显,内置openEuler,配备PD电源,做到开箱即用;板子设计也不错,风扇噪音不大,散热良好,昇腾芯片又确保小板子的性能,接口丰富是这类板子共同的优点,也很好的继承了下来,甚至还可以外接固态,可靠性大大提升。使用起来,哪怕不用openEuler的话,也可以很方便的刷Ubuntu来实现一些需要依赖的开发工作,这次没有跑AI模型,所以对算力的优势还没有很明显的感受,下次可以试一下yolo跑跑看。

Arcan 1824

HTB Attacking GraphQL Skills Assessment

通过枚举应用,利用GraphQL API,发现sql注入点,然后利用找到flag。

qq_33522010的博客 453

分类算法列一下有多少种?应用场景?分类算法介绍、常见分类算法优缺点、如何选择分类算法、分类算法评估

分类算法分类算法介绍概念分类算法常见分类算法NBSLRSVM算法ID3算法C4.5 算法C5.0算法KNN 算法ANN 算法选择分类算法分类算法性能评估 分类算法介绍 概念 数据挖掘任务通常分为两大类: 预测任务,根据其他属性的值,预测特定属性的值。 描述任务,概括数据中潜在联系的模式(相关性,趋势,聚类,轨迹和异常) 分类属于预测任务,就是通过已有数据集(训练集)的学习,得到一个目标函数f(模型),把每个属性集x映射到目标属性y(类),且y必须是离散的(若y为连续的,则属于回归算法)。 分类流程:

weixin_44177594的博客 1万+

蛋白质组学进阶指南 | (八)差异蛋白筛选与功能解析实战

本文是蛋白质组学差异蛋白筛选与功能解析的实战指南。详细讲解了如何利用R语言的limma包进行差异表达分析,结合FDR校正和差异倍数设定筛选关键蛋白,并通过火山图可视化结果。进一步介绍了使用clusterProfiler进行GO与KEGG功能富集分析,以及利用STRING数据库和Cytoscape构建蛋白互作网络以识别枢纽分子,最终串联分析形成可验证的生物学假说。

weixin_29208077的博客 742

ML 系列:第 32节 — 机器学习中的统计简介

随着我们深入研究机器学习领域,了解统计学在该领域的作用至关重要。统计学是机器学习的支柱,它提供了理解数据和获得有意义见解的工具和方法。在这篇文章中,我们将探讨统计的定义、它在机器学习中的重要性,以及描述性统计和推理统计之间的区别。

gongdiwudu的专栏 1409

jmeter问题系列:Begin size 0 is not equal to fixed size 5

Begin size 0 is not equal to fixed size 5 ,问题的解决

雨水的早晨的博客 2412

【强化学习】强化学习中,训练过程的稳定性是什么?该如何进行衡量?请详细进行解释

在强化学习中,训练过程的稳定性指的是算法在训练过程中表现出一致的行为,并且能够稳定地收敛到一个好的策略。收敛性:算法是否能够在有限的时间内收敛到一个近似最优的策略。鲁棒性:算法在不同的初始条件或环境扰动下的表现是否稳定。方差:算法在多次运行中表现出的变异程度。稳定的训练过程意味着算法的训练曲线平滑奖励信号变化小,且策略或价值函数的变化是渐进的。

wq6qeg88的博客 1630

机器学习模型的性能指标

There are various metrics that we can use to evaluate the performance of ML algorithms, classification as well as regression algorithms. We must carefully choose the metrics for evaluating ML performa...

weixin_26752765的博客 3306

某智能物流无人值守系统 ExportReport SQL注入漏洞复现

某智能物流无人值守系统 ExportReport存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

0xSec 818

多分类问题下准确率python_关于机器学习二分类问题的几个评估指标辨析

在完成机器学习中的二分类问题的建模阶段后,需要对模型的效果做评价,如今业内通常采用的评价指标有精确率(Precision)、准确率(Accuracy)、召回率(Recall)、F值(F-Measure)等多个方面,为了准确理解以避免混淆,本文将对这些指标做简要介绍。1 混淆矩阵其实,上面提及的诸多评测指标都是在混淆矩阵上衍生出来的,因此先简要介绍混淆矩阵。针对二分类问题,通常将我们所关心的类别定为...

weixin_39968655的博客 1152

实测!Gemini+ChatGPT赋能学术写作:我的论文写作SOP(附提示词)

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。为什么ChatGPT逻辑清晰却写不长?为什么Gemini能深入分析但废话连篇?这其实是两种模型架构的本质差异,GPT系列擅长指令跟随和语言精炼,而Gemini原生支持超长上下文,适合深度文本生成。两者在深度生成与精炼表达上形成了天然互补。我们可以将它们组合起来使用发挥他们各自的特长。

智能AI让学术科研更容易 521

【单智能体】AI 数据分析智能体案例讲解(附完整源码)

本案例将引导您构建一个基于 AI 的数据分析智能体,让用户能够通过自然语言查询来分析 CSV 和 Excel 文件中的数据,无需掌握 SQL 知识。该智能体使用 Agno Agent 框架集成 OpenAI GPT-4o 模型,并利用 DuckDB 提供高效的数据处理能力。

rengang66的博客 239

机器学习理论之(9):特征选择 Feature Selection

文章目录为什么要进行特征选择特征选择的主要目标其他目标特征选择的方法Filtering 过滤法Pointwise Mutual Information (PMI) 逐点互信息法Mutual information (MI) 互信息法χ2\chi^2χ2卡方检验Wrapper 包装法AdvantagesDisadvantages可实现的 Wrapper 方法sequential forward selectionsequential backward selection模型选择的常见问题特征类型类别、标签 (

qq_42902997的博客 4939

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

1.准确率-机器学习模型性能常用的评估指标

机器学习中的准确率是一项关键指标,通常用于评估模型在任务中的性能。该指标通过计算模型正确预测的样本数量与总样本数之比来衡量模型的准确性。准确率提供了一个直观而清晰的方式,让我们能够迅速了解模型的整体表现。在实际应用中,准确率的计算简单而直观,使其成为评估模型性能的基础工具之一。然而,在某些情况下,类别不平衡或其他因素可能影响准确率的有效性,因此在评估模型时,还需要结合其他评价指标以获取更全面的性能评估。

qq_37977007的博客 2347

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

机器学习之-如何评价分类模型的好坏

如何评价模型的好坏1 数据拆分2 分类算法的评价2.1混淆矩阵2.2 精准率和召回率2.3 精准率和召回率更关注哪个3 ROC曲线3.1 分类阈值、TPR和FPR3.1.1 分类阈值3.1.2 TPR3.1.3 FPR3.2 什么是ROC曲线3.2.1 ROC分析3.2.2 AUC4 总结 1 数据拆分 机器学习中,通常将所有的数据划分为三份:训练数据集、验证数据集和测试数据集。 训练数据集(t...

xxzzg的博客 3997

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LIME:一种解释机器学习模型的方法

在本文中,我们将介绍一种方法,用来解释这篇论文中的任何一种分类器的预测结果,并且用开源包来实现。动机:我们为什么要理解预测结果?机器学习如今是非常火的一个话题。随着计算机在围棋等游戏中击败人类专家,许多人不禁要问机器是否也能胜任司机的工作,甚至是取代医生?现在很多前沿的机器学习模型还是一个黑盒,几乎无法去感知它的内部工作状态。这就给我们带来了可信度的问题:我该相信那个模型的某个预测结果是正确的吗?...

happytofly的博客 2333

机器学习实战:从问题定义到模型部署的全流程深度解析

从解锁手机的人脸识别,到预测天气变化的精准模型,再到为你量身打造的购物推荐,机器学习(Machine Learning, ML)正以前所未有的深度和广度,成为现代科技的基石。我们共同走过了一个完整的机器学习项目流程,从最初的业务构想,到数据的处理与探索,再到模型的构建、评估与部署。本文为你提供的,是一个坚实的起点和一张清晰的地图。这个例子展示了深度学习的强大之处:我们几乎没有做任何手动的特征工程,仅仅通过定义一个合适的网络结构,模型就能从原始的像素点中学习到如何区分10个不同的数字,并达到非常高的准确率。

dfssaafgds的博客 1万+
上一篇: 逻辑回归与多项式特征:解密分类问题的强大工具
下一篇: 统计的基本概念及抽样分布
小馒头学python
小馒头学python 优质创作者: python技术领域 优质创作者: python技术领域
博客等级 码龄4年 1万+粉丝 252原创
评论 83
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馒头学python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值