当前位置: 首页 > news >正文

机器学习——模型评估

  • 在学习得到的模型投放使用之前,通常需要对其进行性能评估。为此,需使用一个“测试集”(testing set)来测试模型对新样本的泛化能力,然后以测试集上的“测试误差( tootino error)作为泛化误差的近似。

  • 我们假设测试集是从样本真实分布中独立采样获得,所以测试集要和训练集中的样本尽量互斥。

  • 给定一个已知的数据集,将数据集拆分成训练集S和测试集T,通常的做法包括留出法、交叉验证法、自助法。

  1. 留出法:

√直接将数据集划分为两个互斥集合

√训练/测试集划分要尽可能保持数据分布的一致性

√一般若干次随机划分、重复实验取平均值

√训练/测试样本比例通常为2:1~4:1

  1. 交叉验证法:

将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10。

  1. 交叉验证法:

将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10。

  1. 与留出法类似,将数据集D划分为k个子集同样存在多种

划分方式,为了减小内样本划分→丹八的左A折交叉验证通常随机使用不同的划分重复p次,最终的

评估结果是这p次k折交叉验证结果的均值,例如常见的“10次10折交叉验证”。

  1. 自助法:

以自助采样法为基础,对数据集D有放回采样m次得到训练集D',D \D'用做测试集

√实际模型与预期模型都使用m个训练样本

√约有1/3的样本没在训练集中出现,用作测试集√从初始数据集中产生多个不同的训练集,对集成学习有很大的好处

√自助法在数据集较小、难以有效划分训练/测试集时很有用;

由于改变了数据集分布可能引入估计偏差,在数据量足够时,留出法和交叉验证法更常用。

所谓评估指标就是衡量稳型之化能力分1的广向的步仕结果任务需求;

使用不同的评估指标往往会导致不同的评估结果。

在分类预测任务中,给定测试样例集,评估分类模型的性能就是把对每一个待测样本的分类结果和它的真实标记比较。

因此,准确率和错误率是最常用的两种评估指标:

√准确率就是分对样本占测试样本总数的比例

√错误率就是分错样本占测试样本总数的比例

由于准确率和错误率将每个类看的同等重要,因此不适合用来分析类不平衡数据集。在类不平衡数据集中,正确分类稀有类比正确分类多数类更有意义。此时查准率和查全率比准确率和错误率更适合。对于二分类问题,稀有类样本通常记为正例,而多数类样本记为负例。统计真实标记和预测结果的组合可以得到如下所示的混淆矩阵:

查准率(P)就是被分为正类的样本中实际为正类的样本比例:

P=TP/(TP+FP)

查全率(R)就是实际为正类的样本中被分为正类的样本比例:

R=TP/(TP+FN)

可见,查准率是被分类器分为正类的样本中实际为正类的比例;而查全率是被分类器正确分类为正类的比例。二者通常是矛盾的。查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。为综合考虑查准率和查全率,它们的调和均值F1度量被提出︰

β=1∶标准的F1

β>1∶偏重查全率

β<1∶偏重查准率

真正率(TPR)就是被分为正类的正样本比例:

TPR=TP/(TP+FN)

假正率(FPR)就是被分为正类的负样本比例:

FPR=FP/(FP+TN)

若某个分类器的ROC曲线被另一个分类器的曲线“包住”,则后者性能优于前者;否则如果曲线交叉,可以根据ROC曲线下面积的大小进行比较,即AUC (AreaUnder ROC Curve)

其中,n0和n1分别表示反例和正例的个数,ri分别为第i个反例(-)在整个测试样例中的排序。

AUC度量了分类器预测样本排序的性能。

CLL度量了分类器预测样本类成员概率的性能。

关于性能比较:

√测试性能并不等于泛化性能

√测试性能会随着测试集的变化而变化

√很多机器学习算法本身有一定的随机性

直接选取相应评估方法在相应度量下比大小的方法不可取!

http://www.lryc.cn/news/22625.html

相关文章:

  • react react-redux学习记录
  • nodejs环境配置
  • 数据治理之元数据管理Atlas
  • 15 Nacos客户端实例注册源码分析
  • C++将派生类赋值给基类(向上转型)
  • 使用Platform Designer创建Nios II 最小系统
  • CD销售管理系统
  • 华为OD机试模拟题 用 C++ 实现 - 玩牌高手(2023.Q1)
  • Hive 的Stage如何划分?
  • 《嵌入式应用开发》实验一、开发环境搭建与布局(上)
  • 电子科技大学软件工程期末复习笔记(五):生产率和工作度量
  • 400G光模块知识大全
  • 【Linux】零成本在家搭建自己的私人服务器解决方案
  • Python 多线程、多进程和协程
  • Xml 注解
  • 【CSS文字滚动】CSS实现文字横向循环无缝滚动,鼠标移入暂停移出继续(附实测源码)
  • 不使用implements关键字实现实现类(类似于mapper)
  • antd4里table的滚动是如何实现的?
  • 抓取namenode 50070 jmx的指标信息
  • aspnetcore-browser-refresh.js和Visual Studio Browser Link
  • hadoop 集群常用命令(学习笔记) —— 筑梦之路
  • ARC142D Deterministic Placing
  • 阶段八:服务框架高级(第二章:分布式事务)
  • RPC异步化原理
  • C# 多窗口切换的实现
  • 【深度学习】RNN
  • 招聘岗位,机会难得
  • web打印的几种方法(2023)
  • 代码随想录算法训练营day44 | 动态规划之完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ
  • IntelliJ IDEA 实用插件推荐(包含使用教程)