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

这篇具有很好参考价值的文章主要介绍了机器学习中的分类问题:如何选择和理解性能衡量标准。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🍋引言

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

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

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

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

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

  • 准确度(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)

运行结果如下

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

confusion_matrix(y_test,log_reg.predict(X_test))

运行结果如下
机器学习中的分类问题:如何选择和理解性能衡量标准,机器学习,机器学习,分类,人工智能,python

precision_score(y_test,log_reg.predict(X_test))

运行结果如下
机器学习中的分类问题:如何选择和理解性能衡量标准,机器学习,机器学习,分类,人工智能,python

recall_score(y_test,log_reg.predict(X_test))

运行结果如下
机器学习中的分类问题:如何选择和理解性能衡量标准,机器学习,机器学习,分类,人工智能,python

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

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

运行结果如下

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

🍋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)

运行结果如下
机器学习中的分类问题:如何选择和理解性能衡量标准,机器学习,机器学习,分类,人工智能,python

🍋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)

运行结果如下
机器学习中的分类问题:如何选择和理解性能衡量标准,机器学习,机器学习,分类,人工智能,python

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

roc_auc_score(y_test,log_reg.decision_function(X_test))

运行结果如下
机器学习中的分类问题:如何选择和理解性能衡量标准,机器学习,机器学习,分类,人工智能,python

🍋PR vs. ROC

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

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

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

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

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

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

挑战与创造都是很痛苦的,但是很充实。文章来源地址https://www.toymoban.com/news/detail-731227.html

到了这里,关于机器学习中的分类问题:如何选择和理解性能衡量标准的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 机器学习或深度学习中超参数性能评估指标 AUROC 和 AUPRC 的区别和选择

    AUROC(Area Under the Receiver Operating Characteristic Curve)和 AUPRC(Area Under the Precision-Recall Curve)都是用于评估 二分类 模型性能的指标,但它们关注的方面略有不同,适用于不同类型的问题。以下是它们之间的主要区别和如何选择使用它们的一些建议: 1. **AUROC(Area Under the Receiver

    2024年02月07日
    浏览(13)
  • 机器学习中的数学原理——分类的正则化

    机器学习中的数学原理——分类的正则化

    通过这篇博客,你将清晰的明白什么是 分类的正则化 。这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言!这一篇就更新一下 《 白话机器学习中

    2024年01月23日
    浏览(8)
  • 机器学习——SVM多分类问题

    机器学习——SVM多分类问题

    目录 线性SVM 1.什么是SVM? 线性二分类器的最优超平面 1、超平面 2、最优超平面 3、最优分类面 4、支持向量与支持向量机 非线性SVM   1、常见的核函数 2、SVM案例 3.举例分析 多分类SVM 1. 直接法 2. 间接法   1.什么是SVM? 1、超平面 根据百度百科的解释,超平面是n维欧式空间

    2024年02月03日
    浏览(12)
  • 机器学习中的ROC曲线理解和实战

    机器学习中的ROC曲线理解和实战

    1、ROC曲线,又可以称之为接受者操作特征曲线(Receiver Operating Characteristic Curve), ROC曲线下的面积,称为AUC(Area Under Cureve),可以衡量评估二分类模型的分类好坏。 2、AUC是1乘以的方格中的一部分,起大小在0-1之间,AUC越大说明模型效果越好, AUC=1,是完美的分类器,该模型至少

    2024年02月08日
    浏览(11)
  • 决策树:理解机器学习中的关键算法

    决策树:理解机器学习中的关键算法

    决策树是一种流行而强大的机器学习算法,它从数据中学习并模拟决策过程,以便对新的未知数据做出预测。由于其直观性和易理解性,决策树成为了分类和回归任务中的首选算法之一。在本文中,我们将深入探讨决策树的工作原理、如何构建决策树、它们的优缺点,以及在

    2024年01月18日
    浏览(14)
  • 如何在机器学习中实现分类?

    机器学习和统计学中的分类是一种监督学习方法,其中计算机程序从给定的数据中学习并进行新的观察或分类。在本文中,我们将详细了解机器学习中的分类。 本博客涵盖以下主题: 目录 什么是机器学习中的分类? 机器学习中的分类术语  分类算法 

    2024年02月12日
    浏览(11)
  • 机器学习中的分类算法详细介绍一(KNN、决策树)

    机器学习中的分类算法详细介绍一(KNN、决策树)

    机器学习中的分类算法有:KNN算法、决策树、随机森林、SVM、极限学习机、多层感知机(BP神经网络)、贝叶斯方法。 关键知识:数据预处理(数据标准化)、K个邻居(需要由用户指定)、距离计算方式(需要考虑数据的特点) 核心思想:物以类聚人以群分,空间相近则类

    2024年02月09日
    浏览(14)
  • 如何选择和评估开源机器学习库

    作者:禅与计算机程序设计艺术 随着人工智能领域的飞速发展,机器学习已经逐渐成为最热门的话题之一。由于机器学习模型的复杂性、数据量、计算资源等因素的限制,目前开源机器学习库的数量也日益增多。不同的机器学习框架的功能、性能、易用程度都存在较大差异。

    2024年02月06日
    浏览(16)
  • 【机器学习】:如何对你的数据进行分类?

    【机器学习】:如何对你的数据进行分类?

    🌸个人主页:JoJo的数据分析历险记 📝个人介绍: 统计学top3 研究生 💌如果文章对你有帮助,欢迎✌ 关注 、👍 点赞 、✌ 收藏 、👍 订阅 专栏 如果我们希望使用机器学习来解决需要预测分类结果的业务问题,我们可以使用以下分类算法。 分类算法是用于预测输入数据属

    2024年01月17日
    浏览(11)
  • 【机器学习300问】63、如何区分二分类、多分类和多标签分类?

            在机器学习中,分类是指根据一系列特征将实例数据划分到预先定义的类别或者标签的监督学习任务。分类任务按照类别数量区分,可以细分为:         二分类 只有两个类别的分类,例如判断邮件是否为垃圾邮件。        假设我们有一组电影评论数据集,

    2024年04月17日
    浏览(13)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包