机器学习-模型评估与选择(待更新)

news/2024/10/31 6:16:08/

本章主要讲解机器学习的基础知识,有关一些专业术语的定义与解释。

文章目录

  • 2.1 经验误差与过拟合
  • 2.2 评估方法
    • 2.2.1 留出法
    • 2.2.2 交叉验证法
    • 2.2.3 自助法
    • 2.2.4 调参与最终模型
  • 2.3 性能度量
    • 2.3.1 错误率与精度
    • 2.3.2 查准率、查全率与F1
    • 2.3.3 ROC与AUC

2.1 经验误差与过拟合

错误率:分类错误的样本数占样本总数。

精度:1-错误率

误差:学习器的实际预测输出与样本的真实输出之间的差异成为“误差”。
学习器在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”

过拟合:学习器把训练样本学的太好,从而把训练样本本身的一些性质特点当作了所有泛化样本都会存在的一般性质,则会产生过拟合,导致泛化性能下降。
过拟合是机器学习面临的关键障碍。

欠拟合:与过拟合相对的是欠拟合,指对样本的一般性质都没学好。

多项式时间(英语:Polynomialtime)在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数。任何抽象机器都拥有一复杂度类,此类包括可于此机器以多项式时间求解的问题。多项式时间(英语:Polynomial time)在计算复杂度理论中,\newline指的是一个问题的计算时间{\displaystyle m(n)}不大于问题大小{\displaystyle n}的多项式倍数。\newline任何抽象机器都拥有一复杂度类,\newline此类包括可于此机器以多项式时间求解的问题。Polynomialtimem(n)n

(1)P( Polynomial )问题:如果一个问题可以找到一个能在多项式时间里解决它的算法,那么这个问题就属于P问题。
(2)NP( Non-Deterministic Polynomial )问题: NP问题不是非P类问题,是多项式复杂程度的非确定性问题。是指可以在多项式的时间里验证一个解的问题。NP问题的另一个定义是,可以在多项式的时间里猜出一个解的问题。

我们假设可以彻底避免过拟合现象,则经验误差最小化就能取得最优解,这就意味着我们构造性地证明了“P=NP”;因此,只要相信“P≠NP”“P \ne NP”P=NP,过拟合就不可避免。

2.2 评估方法

2.2.1 留出法

将数据集划分为两个互斥的集合,其中一个集合作为训练集,另一个集合作为测试集,训练集用于训练,测试集用于评估测试误差,作为对泛化误差的估计。

2.2.2 交叉验证法

将数据集划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即通过分层采样得到。
然后,每次用k-1个子集作为训练集,用余下的1个子集作为测试集,这样可以重复k次遍历k个不同的方案,最终返回k个测试结果的均值。这个验证法也称为“k折交叉验证”。

若共有m个样本,并另k=m,则得到了交叉验证法的一个特例:留一法。

2.2.3 自助法

我们希望评估D训练出的模型,但在留出法和交叉验证法中保留了一部分样本进行测试,因此实际评估模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致估计偏差。
给定m个样本的数据集,采样产生数据集D’:每次随机产从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,是的该样本再下次采样时仍有可能被采到;这个过程重复m次后,就得到了包含m个样本的数据集D’,显然,D中有一部分样本会在D’中多次出现,而另一部分样本不出现。
样本在m次采样中始终不被采到的概率是(1−1m)m(1-\frac{1}{m})^m(1m1)m,取极限得到
lim⁡m→∞(1−1m)m=1e≈0.368\lim\limits_{m\rightarrow\infty}(1-\frac{1}{m})^m=\frac{1}{e}\approx0.368mlim(1m1)m=e10.368
所以在D中大约有36.8%的样本没有出现在D’中,所以我们可以用D’作为训练集,D/D’作为测试集。这样,实际评估与期望评估的模型都有m个样本,而我们仍有约三分之一的数据没在训练集中出现,方便用于测试。这样的测试结果,亦称“包外估计”。

2.2.4 调参与最终模型

众所周知,一个好的模型必然是通过不断调整参数而找出最优模型。

2.3 性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。
对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果,这意味着模型好坏时相对的,模型的好坏不取决于算法和数据,而取决于任务需求。
回归任务最常用的性能度量是“均方误差”
E(f;D)=1m∑i=1m(f(xi)−yi)2E(f;D)=\frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2E(f;D)=m1i=1m(f(xi)yi)2
其中yiy_iyixix_ixi的真实标记,f(xi)f(x_i)f(xi)xix_ixi的预测值。
更一般的,对于数据分布DDD和概率密度p(⋅)p(·)p(),均方误差可描述为
E(f;D)=∫x→D(f(x)−y)2p(x)dxE(f;D)=\int_{x\rightarrow D}(f(x)-y)^2p(x)dxE(f;D)=xD(f(x)y)2p(x)dx

下面介绍分类任务中常用的性能度量。

2.3.1 错误率与精度

在本章开头给出错误率与精度的定义,不再赘述
更一般的,对于数据分布D和概率密度p(·),错误率与精度可分别描述:
E(f;D)=∫x→DⅡ(f(x)≠y)p(x)dxE(f;D)=\int_{x\rightarrow D}Ⅱ(f(x)\ne y)p(x)dxE(f;D)=xD(f(x)=y)p(x)dx
其中Ⅱ(·)是指示函数,在·为真和假时分别取直1和0。
acc(f;D)=∫x→DⅡ(f(x)=y)p(x)dx=1−E(f;D)acc(f;D)=\int_{x\rightarrow D}Ⅱ(f(x)=y)p(x)dx\newline=1-E(f;D)acc(f;D)=xD(f(x)=y)p(x)dx=1E(f;D)

2.3.2 查准率、查全率与F1

假设对于二分类问题,根据情况划分为真正例TP,假正例FP,真反例TN,假反例FN。
真正例即预测结果和真实情况都为真
真反例即预测结果和真实情况都为假
假正例即预测结果为真,真实情况为假
假反例即预测结果为假,真实情况为真
查准率P和查全率R定义为:
P=TPTP+FPP=\frac{TP}{TP+FP}P=TP+FPTPR=TPTP+FNR=\frac{TP}{TP+FN}R=TP+FNTP
以查全率和查准率为xy周给出坐标图
借用该博客的图片进行理解:

借用这个博客的图片
在比较时,若一个学习器的P-R曲线被另一个学习器的曲线完全保住,则可断言后者性能优于前者。其次,在不好比较时,平衡点可以作为一个度量。
上述比较方法过于简化,因此引入F1度量:
F1=2∗P∗RP+R=2∗TP样例总数+TP−TNF1=\frac{2*P*R}{P+R}=\frac{2*TP}{样例总数+TP-TN}F1=P+R2PR=+TPTN2TP
F1是基于查全率和查准率的调和平均定义的,而FβF_\betaFβ则是加权调和平均。
因为我们在实际应用中,对查准率和查全率的侧重程度有所不同,所以常用加权调和平均。
Fβ=(1+β2)∗P∗R(β2∗P)+RF_\beta =\frac{(1+\beta^2)*P*R}{(\beta^2*P)+R}Fβ=(β2P)+R(1+β2)PR
其中β>0度量了查全率对查准率的相对重要性,当beta=1退化为标准的F1,β>1时查全率有更大影响,β<1时,查准率有更大影响其中\beta>0度量了查全率对查准率的相对重要性,当beta=1退化为标准的F1,\beta>1时查全率有更大影响,\beta<1时,查准率有更大影响β>0,beta=1退F1β>1β<1

当我们用一个算法进行多个模型的测试,得到n个二分类结果,但我们希望对算法也就是这n个结果进行综合考量查准率和查全率。
一种直接的做法是在各矩阵上分别计算出查准率和查全率,再计算出平均值,得到了宏查全率,宏查准率和相应的宏F1。

上述是计算出各查全率和查准率再求平均值,我们也可以先求各矩阵中的对应元素进行平均,然后再求出查全率和查准率以及F1,这时我们称为微查全率、微查准率、微F1。

2.3.3 ROC与AUC


http://www.ppmy.cn/news/2551.html

相关文章

观看2022年卡塔尔世界杯的感想

每四年一度的世界杯又开始了&#xff0c;刚好在假期&#xff0c;这可是自我懂事以来第一次认真的观看。每到有球赛时我们父子齐上阵&#xff0c;摩拳擦掌、看到精彩时不忘高声齐呼&#xff0c;于是客厅就变成我们爷俩的绿茵场了。 几场下来&#xff0c;我只看到白皮肤&…

windows几个常用的命令

1. net命令 查看用户列表: net user powershell查看用户列表: Get-WmiObject -Class Win32_UserAccount 查看用户组列表: net localgroup 查看管理组列表: net localgroup Administrators 添加用户并设置密码: net user ASP.NET Pssw0rd /add 将用户加入管理组: net localgrou…

[附源码]JAVA毕业设计田径运动会管理系统(系统+LW)

[附源码]JAVA毕业设计田径运动会管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…

AT_pakencamp_2021_day2 a~c 题解

目录A题&#xff08;AT_pakencamp_2021_day2_a Participants 2 &#xff09;题目大意思路CODEB题&#xff08;AT_pakencamp_2021_day2_b Pasokon Power &#xff09;思路CODEC题&#xff08;AT_pakencamp_2021_day2_c Participants 3 &#xff09;题目翻译思路CODEA题&#xff…

(附源码)SSM失物招领平台 毕业设计 271621

SSM失物招领平台的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对失物招领等问…

使用formatter方法格式化数据

前言 当你在表格中根据标识展示不同字段时&#xff0c;你发现&#xff0c;这个标识的类型有很多&#xff0c;需要一个一个判断很多行代码。当然&#xff0c;标识的类型比较少时&#xff0c;直接通过判断展示不同的字段无疑是最快的&#xff0c;如下代码。一旦匹配的标识类型有几…

【Golang】欲入此Go先看Go的基本语法

&#x1f4d3;推荐网站(不断完善中)&#xff1a;个人博客 &#x1f4cc;个人主页&#xff1a;个人主页 &#x1f449;相关专栏&#xff1a;CSDN专栏、个人专栏 &#x1f3dd;立志赚钱&#xff0c;干活想躺&#xff0c;瞎分享的摸鱼工程师一枚 &#x1f34a;前言 完成了我们众多…

【与达梦同行】数据库coredump的几种常用生成方式+dmrdc使用

一、简介 DM 实例故障&#xff0c;即数据库进程 dmserver 出现异常&#xff0c;表现为异常中止&#xff0c;进程存在但无响应或者无法登录的状态&#xff0c;出现此类问题都属于比较严重的故障&#xff0c;一般情况下我们需要尽可能的收集到所需要的信息进行故障分析&#xff…