IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 关于机器学习模型的评估方法 -> 正文阅读

[人工智能]关于机器学习模型的评估方法

当我们辛苦搭建了一个模型后,如何能够知道我们的模型是否好用呢?这就需要了解具体的模型评估方法,本文将分别介绍机器学习中常见的两类问题(分类问题、回归问题)的模型评估方法。

其中回归问题,主要使用平均绝对误差(MAE)、均方误差(MSE)等指标进行评估;分类问题主要使用精确率、召回率、F1分数等进行评估。

01

回归问题

回归问题主要有两种评价指标,也是我们常用的损失函数。分别是平均绝对误差、平均平方误差。

1、平均绝对误差(MAE)

平均绝对误差是指模型预测值f(x)和真实值y之间距离的均值,又称为曼哈顿距离。值越小说明模型预测的精确度越高。

2、均方误差(MSE)

均方误差是模型预测值f(x)与真实样本值y之间差值平方的均值,又称为欧几里得距离。值越小说明模型预测的精确度越高。

3、MAE与MSE的比较

由于平方项的原因,均方误差(MSE)在误差较大点时的损失远大于平均绝对误差(MAE),MSE会给离群点更高的权重,这就会牺牲其他正常点数据的预测效果,最终降低整体的模型性能。

所以当训练数据中含有较多的离群点时,平均绝对误差(MAE)更为有效,也即平均绝对误差对于离群点有着比均方误差更好的鲁棒性。

梯度的求解以及收敛上,MSE要优于MAE。MSE处处可导,而且梯度值也是动态变化的,能够快速的收敛;而MAE在0点处不可导,且其梯度保持不变。对于很小的损失值其梯度也很大,收敛速度慢,在深度学习中,常需要使用变化的学习率,在损失值很小时降低学习率。

总之,MAE作为损失函数更稳定,并且对离群值不敏感,但是其导数不连续,求解效率低。另外,在深度学习中,收敛较慢。MSE导数求解速度高,但是其对离群值敏感,不过可以将离群值的导数设为0(导数值大于某个阈值)来避免这种情况。

常规机器学习算法,常使用MAE,但对于CNN等神经网络算法,一般使用MSE,提升模型收敛速度

02

分类问题

相比于回归问题,分类问题要稍微复杂一点。在分类问题中,将机器学习模型的预测结果与实际情况进行对比后,结果可以分为四种:TP、TN、FN和FP。

每一种结果由两个字母组成,第一个字母为T或F,是True和False的首字母缩写,表示预测结果是否符合事实,即模型猜得对不对。第二个字母为P或N,是Positive和Negative的首字母缩写,表示的是预测的结果是正类还是负类

一般来讲,正类就是我们期望检测出来的那类样本。

● TP:TruePositive,预测结果为正类,且与事实相符,即事实为正类。

● TN:True Negative,预测结果为负类,且与事实相符,即事实为负类。

● FP:False Positive,预测结果为正类,但与事实不符,即事实为负类。

● FN:False Negative,预测结果为负类,但与事实不符,即事实为正类。

在有了上述结果后,我们就可以进行指标统计了,常用的有三个,即准确率、精确率、召回率,如下图:

上图的公式看起来还是过于复杂,下面我们换一种表述方式来讲解:

准确率预测对的/所有。单纯用准确率并不能表征模型的好坏,举个极端的例子,比如有一万封邮件,其中仅有10封是垃圾邮件,需要我们进行垃圾邮件检测,这里面的垃圾邮件就是正类,如果我们直接把所有的邮件直接判定为正常邮件即负类,那么我们的准确率仍然是9990/10000=99.9%,但我们都知道这并不是一个可用的模型。

精确率你所预测的正样本中有多少是预测对了的,它表示的是预测为正的样本中有多少是真正的正样本。精确率判断的是你误报的多不多的意思。如果想提升精确率,那么我们只需要更加谨慎的判断正例即”不可滥杀无辜”,这样可以尽量确保我们判断出来的正例都是对的,但是实际上带来的问题是会有很多实际为正例的没有被我们识别出来。

召回率正样本有多少被找出来了。它表示的是样本中的正例有多少被预测正确了。为了提升召回率,我们可以尽量放宽判定的尺度,尽量让模型把尽可能多的正例给识别出来即”宁可错杀一千也不放过一个”,但是带来的牺牲可能就是有很多实际上是负例的样本被判定成了正例。

从上面的介绍我们能看出来,精确率、召回率就像天平的两端,有点相互平衡、制约的意思。实际上一个好的模型并不能一味的追求某一个指标越高越好(除非模型有特殊的目的),而应该是在这两个指标中找到一个合适的平衡点

因此,我们需要有更加科学健全的评价指标,于是我们就有了 精确率+召回率的评价体系,即F1 Score。

F1分数(F1 Score),是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的精确率和召回率。F1分数可以看作是模型精确率和召回率的一种调和平均,它的最大值是1,最小值是0。

百度百科

在实际工程中,我们一般使用F1 Score来对模型进行评估。它的好处就是,如果说一个值特别低,另外一个值特别高,最终得到的F1 score的值也会很低,只有两个值都很高,得到的值才会非常高

F1 Score指标在scikit-learn中封装在了sklearn.metrics 模块下的 f1_score() 方法中。我们可以直接调用这个方法,传入真实值、预测值后即可获得F1 Score值。

from sklearn.metrics import f1_scoref1_score(y_test, y_predict)# 0.8674698795180723

AI自研社是一个专注人工智能、机器学习技术的公众平台,目前已发表多篇连载文章,对机器学习领域知识由浅入深进行详细的讲解,其中包含了大量实例及代码参考,对学习交流有很大帮助,欢迎大家关注。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:43:23  更:2022-04-18 17:43:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:28:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码