我的编程空间,编程开发者的网络收藏夹
学习永远不晚

机器学习中怎么评估分类效果

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

机器学习中怎么评估分类效果

这篇文章将为大家详细讲解有关机器学习中怎么评估分类效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

给你一个问题,假如老板让另一个同事去检查一万张纸币中,有多少是真币,有多少是假币,然后这个同事给老板汇报了结果:这一万张纸币中,有2千张是真币,有8千张是假币。现在,老板让你来评估这个同事的汇报结果,你会怎么做?

你重新把一万张纸币再用机器过一遍再做对比,或者把这个同事的2千张真币与8千张假币再过一遍,这都是可以的。但是,假如不允许你这样做呢,比如一万张纸币变成了1百万张,不可能给你时间再全部来一遍,那你怎么做?

抽查啊。

似乎就这一招,那么要怎么抽查才能合理地评估同事汇报的结果呢?

一般的做法是这样的,先在2千张真币上抽查:“你说这些都是真币,哪到底有多少是真的呢?” 这个比例,在数据分析中,叫Precision,精度或精准度。如果100%是真的,那当然是最好的。但即使精准度是100%,也不能说明这个汇报结果就ok了,因为,另外8千张“假币”中也有可能全是真币啊。

所以,还要在8千张假币中抽查:“你说都是假的,哪到底有多少是假的呢?” 这个比例,也能说明问题,假如抽了一百张,结果有90张都是真币(只有10%真是假币),那说这8千张都是假币就显得很不可信。这个比例,小程觉得它也叫作精准度,就是“你说的假中,到底有多少是假”,值越大越好。

那除了精准度,是不是就够了呢?

看起来是够了,因为,精准度反应了“判是非”的能力。以上面的例子来说,比如判断为真币的精度是98%,那就意味着只有2%的假币被误判为真币了,所以我把假币判断为真币的可能性是很低的(假设2%在业界是很低的:-)。再比如,假设判断为假币的精度是95%,那就意味着只有5%的真币给误判成假币了。在这种情况下,把假的判断成真的,或把真的判断成假的,比例都很低。这不就完了吗?这说明“判是非”的能力很强啊,这个预测系统是可信的啊,它不会把真假误判啊,你给它一堆纸币,它就能给你分辨真假,不会出错啊。

但是,这里有一个前提,这个系统要在判断后,你才知道是不是判断对了。如果这个系统对所有纸币都不判断,或者者1万张纸币中只判断了1千张,那你还指望它做什么?它是很准啊,但是,它只有判断出来的才很准,还有很多是没有判断出来的!但话说回来,其实只要很准(精度高),就有使用市场的,这个后面再说。

所以,这里还有一个指标,叫Sensitivity灵敏度,也叫Recall召回率。

召回率,反映了“找回”的能力,比如我给系统1千张真币,它能找出800张真币,那80%就是召回率。如果它的召回率是10%,那说明只找回了100张,还有900张是怎么回事?这时,有两个可能,一是判断不出来,比如这900张我就是判断不出来,所以就找不回来,另一个可能,就是误判了,比如900张我都误判为假币了。但是,误判说明什么?误判说明精度差啊,所以如果精度很高,那就只有一种可能,就是判断不出来。

所以,精度跟召回率都要看,精度反应了靠不靠谱(说什么是什么),召回率反应了能不能找到数据(覆盖了多少样本)。

不管是精度还是召回率,都只是一个数字,而为了得到这个数字,一般都是经过很多样本的预测考验才得出来的,所以把这些样本都反应出来就显得很必要了,这表明,我的“率”是有由来的。这时候,“混淆矩阵”就出场了。

混淆矩阵,也叫差错矩阵,名字都是从鬼文翻译过来的(由此可见,含义才是最重要的,鬼知道翻译到的是什么)。混淆矩阵是一张表格,一边是真实值,一边是预测值,横竖怎么摆都行,看下面这个图就明白了:

机器学习中怎么评估分类效果

“混淆”表明了分类的能力,以上图为例,苹果的召回率(在一堆苹果中能捞回多少苹果的能力)是:90/(90+5+4+1)=90%,而香蕉、梨与草莓的召回率分别为80%、95%、97%。小程每个分类刚好用了100个真实值,为了方便心算能力不好的你。由此可见,右对角线上的值就是召回值,也就是判断准确的值。

再看精度,这里行表示了精度,比如苹果的精度是:90/(90+10+1+0)=89%,香蕉的精度是:80/(5+80+2+2)=89.9%,梨跟草莓分别是90.4%、92.4%。

然后,召回率跟精度一起来看,
苹果、 香蕉、 梨、     草莓
90%     80%     95%      97%
89%     89.9%  90.4%   92.4%

草莓的召回率跟精度都是最高的,让我们恭喜它!

除了召回率跟精度,对于分类器(上面预测苹果香蕉就是分类器)效果评估,还有两个指标,一个叫总的准确率,就是拿判断准确的值(右对角线上的值)相加,再除以总的样本数量,这里就是(90+80+95+97)/400=90.5%,另一个叫特异度,比如对于苹果,就是真的不是苹果的样本中,判断不是苹果的比例。但小程觉得这两个指标的参考意义不大。

从一张样本表,抽象出每个分类的召回率跟精度,如果再把抽象一下,就是每个分类的F1Score,它是召回率跟精度的整合:F1Score=2*精度*召回/(精度+召回),上面的例子,苹果的F1Score=2*90%*89%/(90%+89%)=89.49%。

基本上,也就是用精度、召回率来描述分类器的质量了,最多再加个F1Score。

让我们再深入一点,问你一个问题,精度高可以用于什么场景?召回率高又可以用于什么场景?

精度高,就是不出错啰,说是什么就是什么,那可以用于分类,比如给一批样本过来,样本里面有ABCD几个分类,精度高的情况下,就可以指出哪些样本是A,哪些样本是B,等等。如果精度高,但召回率低,一样可以用于分类,只是,有很多A类的样本没有找出来(谁让你判断不出来),其它分类也一样。

召回率高,但精度低,那就是分类是不靠谱的,说是A结果可能是B,那就不要分类了,这时,因为召回率高,那可以用于筛选已有的分类,比如说有一批样本基本是A类,只是里面可能有一些B跟C,那就可以用这个分类器来筛选了,相当于纠错,因为召回率高,所以基本把A给找回来,其它的扔掉。

召回率高,精度也高,也既可用于分类,也可用于已有分类(真的分好了的)的筛选。

那如果召回率低,精度也低呢?那就是废的,用人工好了!

关于“机器学习中怎么评估分类效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

机器学习中怎么评估分类效果

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

机器学习中怎么评估分类效果

这篇文章将为大家详细讲解有关机器学习中怎么评估分类效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。给你一个问题,假如老板让另一个同事去检查一万张纸币中,有多少是真币,有多少是假币,然后这个同事给老板汇报
2023-06-19

怎么使用R语言进行机器学习模型训练和评估

在R语言中,可以使用各种机器学习库和包来进行模型训练和评估。以下是一个简单的步骤来使用R语言进行机器学习模型训练和评估的示例:准备数据:首先加载数据集,将数据集分为训练集和测试集。#加载数据data <- read.csv("data.c
怎么使用R语言进行机器学习模型训练和评估
2024-03-04

怎么在css中实现一个评分星星效果

本篇文章为大家展示了怎么在css中实现一个评分星星效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。结构如下:很简单的结构,主要核心代码如下:
2023-06-08

Elasticsearch分布式搜索的机器学习集成应用(如何利用机器学习提升Elasticsearch分布式搜索的效果?)

机器学习与Elasticsearch分布式搜索的集成可显著提升搜索效果。通过定制文档相关性评分、个性化搜索、异常检测、推荐系统、自然语言处理、自动化查询优化、数据质量管理、外部数据集成、可扩展性、实时更新等功能,企业可以提供更相关、个性化和准确的搜索体验,从而增强用户满意度和业务绩效。
Elasticsearch分布式搜索的机器学习集成应用(如何利用机器学习提升Elasticsearch分布式搜索的效果?)
2024-04-02

机器学习中感知器是怎么产生的

本篇内容介绍了“机器学习中感知器是怎么产生的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!感知器的诞生——从样本中学习神经网络的AI先驱们一
2023-06-02

怎么在Spark中实现机器学习任务

在Spark中实现机器学习任务通常使用Spark MLlib或Spark ML库。以下是一个基本的机器学习任务的步骤:加载数据:首先,你需要加载你的数据集。你可以从不同来源加载数据,如HDFS、Hive、本地文件等。数据预处理:在机器学习任
怎么在Spark中实现机器学习任务
2024-03-04

机器学习中词袋模型和TF-IDF怎么理解

本篇内容主要讲解“机器学习中词袋模型和TF-IDF怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“机器学习中词袋模型和TF-IDF怎么理解”吧!示例我将用一个流行的例子来解释本文中的Bag
2023-06-19

Python中怎么创建线性回归机器学习模型

Python中怎么创建线性回归机器学习模型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。线性回归机器学习模型1.要使用的数据集由于线性回归是我们在本文中学习的第一个机器学习模型
2023-06-16

怎么在python中利用机器学习实现预测股票交易信号

本篇文章给大家分享的是有关怎么在python中利用机器学习实现预测股票交易信号,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。数据获取与指标构建先引入需要用到的libraries
2023-06-15

使用Python部署机器学习模型的10个实践经验分别怎么样的

今天就跟大家聊聊有关使用Python部署机器学习模型的10个实践经验分别怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。有时候,作为数据科学家,我们会忘记公司付钱让我们干什么。
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录