机器学习读书笔记:假设检验(一)
文章目录
- 假设检验
假设检验
在前一篇文章写到的评估方法与性能评价中(白话机器学习:模型性能评价),我们可以针对某个学习算法去计算出性能指标来。那么这个性能指标是不是真的好呢?因为我们获得的是测试集的性能指标,而不是整个全局的性能指标。又或者说,两个学习期A和B,在测试集上获得了性能指标EaE_aEa和EbE_bEb,哪个更好呢?因为测试集的划分和数据采样的问题,EaE_aEa和EbE_bEb谁好谁坏真的说不准。
我们需要比较的不是测试集上的指标,而应该是学习算法在整体数据集上的泛化指标,而泛化指标是无法通过数据计算得到的。怎么解决这个悖论呢,就需要用到假设检验了。
而假设检验的思想正是科学工作者们最重要的思想:“大胆的假设,小心的求证”。简单来说就是我们针对整体数据的分布做出某种假设,利用已有样本数据去进行计算测试指标是否可以代表泛化概率(或者说测试指标能代表泛化指标的概率有多大)。
上面提到的假设可以针对各种指标(就是上篇文章提到的那些)去进行假设,简单起见,以错误率ϵ\epsilonϵ来举例。
首先介绍出场的几个符号:
- ϵ\epsilonϵ,学习算法在整体数据集上的泛化错误率。
- ϵ′\epsilon\primeϵ′,学习算法在测试集上的测试错误率。
- ϵ0\epsilon_0ϵ0,某种假设的错误率。
- ϵ‾\overline{\epsilon}ϵ,临界错误率。
下面列一下我自己对机器学习中假设检验的理解,以二分类问题为例:
先做出一个假设,测试集的错误率ϵ′\epsilon\primeϵ′可以代表泛化错误率ϵ\epsilonϵ,我们需要了解的是,这个假设的可行性有多大。
假设测试集中的数据样本都是独立采样获得,那么基于这个前提,我们就可以把泛化错误率理解成:“在一个二分类问题中,总数为m的样本集合中,恰好m∗ϵm*\epsilonm∗ϵ个样本被分错”,这就是二项分布的概念了。
这里还有一个重要的概念需要引出来,就是“小概率事件原理”:小概率原理是指一个事件的发生概率很小,那么它在一次试验中是几乎不可能发生的,但在多次重复试验中是必然发生的。那么反过来说,如果这样的事件发生了,我们就认为原假设错误,从而做出拒绝原假设的决断。那么关键点就在于,这个小概率到底是多小?我们把这样的一个概率称之为ppp,一般是设置0.05或者0.01。
那么,我们在测试集中已经出现了错误率为ϵ′\epsilon\primeϵ′了,根据小概率事件原理,这个事情发生的概率是大于了概率α\alphaα的。但是如果这个事情发生的概率小于了概率α\alphaα的话,就可以说我们的这个假设是错误的。那么我们就来算一算这个事情(这个事情是指泛化错误率ϵ\epsilonϵ恰好是ϵ′\epsilon\primeϵ′,也就是我们的假设:ϵ=ϵ′\epsilon = \epsilon\primeϵ=ϵ′)的概率。
根据第二点中的假设,这个错误率的概率符合二项分布,那么根据二项分布的概率计算公式,我们可以知道在错误率为ϵ\epsilonϵ的情况下,m个样本有m′m\primem′个样本分类错误,而其他样本分类正确的概率为:
P=(mm′)ϵm′(1−ϵ)m−m∗ϵ,m′=m∗ϵP = \left(\begin{matrix} m \\ m\prime \end{matrix}\right)\epsilon^{m\prime}(1-\epsilon)^{m-m*\epsilon}, m\prime = m*\epsilon P=(mm′)ϵm′(1−ϵ)m−m∗ϵ,m′=m∗ϵ
取ϵ=ϵ′\epsilon = \epsilon\primeϵ=ϵ′,就是可以得到在包含m个样本的测试集上,泛化错误率为ϵ\epsilonϵ的学习器被测得测试错误率为ϵ′\epsilon\primeϵ′的概率。
P=(mϵ′∗m)ϵϵ′∗m(1−ϵ′)m−ϵ′∗mP = \left(\begin{matrix} m \\ \epsilon\prime*m \end{matrix}\right)\epsilon^{\epsilon\prime*m}(1-\epsilon\prime)^{m-\epsilon\prime*m} P=(mϵ′∗m)ϵϵ′∗m(1−ϵ′)m−ϵ′∗m实际上,如果泛化错误率比测试错误率更小的话,我们肯定是更高兴的,所以,我们把第一点的假设改一下,只要小于某个错误率就可以了,也就是说:假设改成ϵ≤ϵ0\epsilon \leq \epsilon_0ϵ≤ϵ0。举个栗子,如果ϵ0=5\epsilon_0 = 5ϵ0=5,那么就是恰好判别错了5个以下的情况都可以接受,4个,3个,2个都可以。
所以,我们把这些概率进行求和,使得求和的概率大于第二点中的概率ppp即可。
为了便于理解,把二项分布的密度函数图先贴出来:
上面提到的求和,比如ϵ0=5\epsilon_0 = 5ϵ0=5,那就是曲线下面的面积。但是一般不是计算左边的,而是反过来计算,也就是计算ϵ>5\epsilon > 5ϵ>5的面积,也就是大于这个错误率的概率和,使得这个和小于某个概率,也就是图中的α\alphaα:置信区间。
这就是书上的公式:
∑k=im(mi)ϵi(1−ϵ)m−i\sum_{k=i}^m{\left(\begin{matrix} m \\ i \end{matrix}\right)\epsilon^i(1-\epsilon)^{m-i}} k=i∑m(mi)ϵi(1−ϵ)m−i
最后的公式(书上写的是max,但是我自己理解应该是min,好像后续作者做了更新说是改成min了吧):
ϵ‾=minϵs.t∑k=im(mi)ϵi(1−ϵ)m−i<α\overline{\epsilon} = min \epsilon s.t \sum_{k=i}^m{\left(\begin{matrix} m \\ i \end{matrix}\right)\epsilon^i(1-\epsilon)^{m-i}} < \alpha ϵ=minϵs.tk=i∑m(mi)ϵi(1−ϵ)m−i<α
的含义就是找到一个满足条件<α<\alpha<α的最小的错误率ϵ\epsilonϵ。因为一个概率α=0.05\alpha = 0.05α=0.05的话,很有多个ϵ\epsilonϵ可以满足,从图上看,7,8,9往后的所有数字可能都满足,但是错误率肯定是越低越好,所以我们需要找到一个最小的。到这里,我们就可以回过头去看这个假设,如果我们的测试错误率ϵ′<ϵ‾\epsilon\prime<\overline{\epsilon}ϵ′<ϵ,那么就表示在1−α1-\alpha1−α的置信度下,这个假设是不能被拒绝的,也就是成立的。简单的说,ϵ′\epsilon\primeϵ′可以代表泛化错误率。举个栗子,α=0.01\alpha = 0.01α=0.01的话,假设此时的ϵ‾=3\overline{\epsilon} = 3ϵ=3。那么如果要进一步降低α\alphaα的话,那么ϵ‾\overline{\epsilon}ϵ就会相应的增加,也就是临界错误率会增加。
上面整个过程是对某次测试过程获得的测试错误率ϵ\epsilonϵ的评价过程,但是根据之前的介绍,一般都会对测试集做多次的划分(比如使用留出法),来获得多个测试错误率。
假设做了kkk次的划分,那么就可以获得kkk个错误率:ϵ1\epsilon_1ϵ1,ϵ2\epsilon_2ϵ2 … ϵk\epsilon_kϵk。
这种情况下,我们一般是使用平均测试错误率μ\muμ来代替单次的错误率ϵ\epsilonϵ
μ=1k∑i=1kϵi\mu = \frac{1}{k}\sum_{i=1}^k{\epsilon_i} μ=k1i=1∑kϵi
那么,根据上面的逻辑,我们就是要计算假设:μ≤ϵ0\mu \leq \epsilon_0μ≤ϵ0的概率。
上面提到单次测试错误率的计算符合二项分布,所以使用二项分布的方式来计算概率。
书上讲到的是构造一个服从t分布的统计量(能不能构造服从其他分布的统计量,我就不清楚了,那个感觉不是我的知识水平能涉及的范围了),用这个统计变量去计算概率:
τt=k(μ−ϵ0)σ\tau_t = \frac{\sqrt{k}(\mu-\epsilon_0)}{\sigma} τt=σk(μ−ϵ0)
t分布的概率密度函数长这个样子。
- 在这个t分布中,把(μ−ϵ0)(\mu-\epsilon_0)(μ−ϵ0)作为一个统计变量XXX,使得XXX服从t分布。对于第一步中的假设,这个假设被拒绝的情况就是∣μ−ϵ0∣>0|\mu - \epsilon_0| > 0∣μ−ϵ0∣>0,那么在t分布中,这个假设被拒绝的概率就是P(∣μ−ϵ0∣>0)P(|\mu - \epsilon_0| > 0)P(∣μ−ϵ0∣>0),设置一个置信度α\alphaα,使得P(∣μ−ϵ0∣>0)=αP(|\mu - \epsilon_0| > 0) = \alphaP(∣μ−ϵ0∣>0)=α来找到这个临界值,所以这样的概率就是t分布两侧(−∞,−t(α2))(-\infty, -t(\frac{\alpha}{2}))(−∞,−t(2α)),(t(α2),∞)(t(\frac{\alpha}{2}), \infty)(t(2α),∞)的阴影部分。
- t分布提供了一些常用的基于某个置信度α\alphaα的临界值表格。
我对这张图的理解如下:
比如图中最右下角的数字:1.699表示在1−α=901-\alpha = 90%1−α=90的置信度下,30个样本(在本文的语境中,就是30次留出法获得的ϵi\epsilon_iϵi)的均值∣μ−ϵi∣|\mu - \epsilon_i|∣μ−ϵi∣的最大差异率为1.699。或者用更通俗的话讲:如果τt≤\tau_t \leqτt≤临界值,那么平均错误率的可信程度为90%。
数学水平很有限,书上的一两页看了两三天才基本看明白。写这篇文章又花了2-3天才写明白,最起码把我自己的理解写完了,不是很严谨,但是应该还是讲清楚了。如果有不对的地方,希望各位指出,谢谢。
机器学习读书笔记:假设检验(一)相关推荐
- Bishop 模式识别与机器学习读书笔记_ch1.1 机器学习概述
模式识别与机器学习-读书笔记 第一章 机器学习概述(I) 数据模式搜索问题是一个基础性的问题,有着悠久而成功的历史. 16世纪对第谷布拉赫的广泛天文观测使约翰内斯开普勒发现了行星运动的经验定律,从而为 ...
- 机器学习读书笔记(开篇)
新近到手一本<机器学习实战>(Peter Harringtom),兴奋之余,本着好记性不如烂笔头的真理,打算将读书的过程记录下来,形成读书笔记,重点记录自己所理解的算法思想与应用示例.本人 ...
- [Mitchell 机器学习读书笔记]——人工神经网络
1.简介 神经网络学习方法对于逼近实数值.离散值或向量值的目标函数提供了一种健壮性很强的方法.在现实中,学习解释复杂的现实世界中的传感器数据,人工神经网络(Artificial Neural Netw ...
- 机器学习读书笔记:假设检验(二)
文章目录 t检验 卡方检验 Friedman检验 Nemenyi后续检验 偏差与方差 之前的一篇关于假设检验的文章主要是针对一个学习算法的假设检验.在真是工作环境中,很多情况下,我们都是想比较两个 ...
- 李宏毅机器学习—读书笔记
李宏毅机器学习笔记(LeeML-Notes) leeml-notes 机器学习 人工智慧(Artificial Intelligence)是我们想要达成的目标,希望机器可以跟人一样的聪明.机器学习(M ...
- 机器学习读书笔记(一)
By RaySaint 2011/5/27 机器学习的基本概念和学习系统的设计 最近在看机器学习的书和视频,我的感觉是机器学习是很用的东西,而且是很多学科交叉形成的领域.最相关的几个领域要属人工智能. ...
- 掌握Python 机器学习 读书笔记 9 (流水线 算法保存)
为什么80%的码农都做不了架构师?>>> cha14 流水线 在机器学习里可以看到有一些必要的步骤, 这些步骤是可以作为workflow 自动化的. 而且流水线可以对每个fol ...
- 机器学习读书笔记(一)k-近邻算法
一.机器学习是什么 机器学习的英文名称叫Machine Learning,简称ML,该领域主要研究的是如何使计算机能够模拟人类的学习行为从而获得新的知识和技能,并且重新组织已学习到的知识和和技能,使之 ...
- 掌握python机器学习-读书笔记8 (抽样回归算法)
为什么80%的码农都做不了架构师?>>> 12 抽查回归算法 今天来学习如何使用python scikit learn 来进行一些回归算法的使用. 篇幅限制, 不会对具体算法做 ...
- 机器学习读书笔记之6 - 贝叶斯系列
概率论只不过是把常识用数学公式表达了出来. --拉普拉斯 目录 0. 前言 1. 历史 1.1 一个例子:自然语言的二义性 1.2 贝叶斯公式 2. 拼写纠正 3. 模型比较 ...
最新文章
- 如何增加新站前期收录几率?
- mybait 转换失败 null处理
- gitlab ProjectMembers
- web报表工具FineReport使用中遇到的常见报错及解决办法(三)
- Code Style Guidelines for Contributors Reading Notes
- 代理模式的原理解析入门
- Java 动态代理 Demo
- GB28181协议之实时视频
- visio画立体图_Microsoft Office Visio绘制三维正方体图形的详细操作步骤
- mysql8只有ibd文件_只有ibd文件还能恢复数据吗
- 口袋的天空(洛谷 P1195)
- 第一章 前端开发——HTML5/CSS3
- 发布会签到系统_系统开发_创建项目及应用
- Linux运维工程师笔试题系列6(30题)
- 排序 - 希尔排序
- 光纤交换机 序列号_IBM B系列光纤交换机B24默认激活和license以及如何导入license...
- Reinforcement Learning,微信公众号:DRL学习
- 【JAVA】-- 期末考试复习题含答案(每章对应题、选择、填空、简答、编程)(下)
- html鼠标滚轮不滚动页面,Windows10系统鼠标滚轮无法滚动页面如何解决
- 思科交换机接口划分到vlan