统计学习

统计学习:也称统计机器学习,是计算机基于数据构建概率统计模型,并用模型进行预测与分析的一门学科。

数据是统计学习的对象。统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习的前提。这些数据具有某种共同的性质,并且由于具有统计规律性,因此可以用统计学习方法来加以处理。

预测与分析是统计学习的目的,特别是对于未知新数据进行预测与分析。

统计学习方法是基于数据构建统计模型从而对数据进行预测与分析。统计学习由监督学习非监督学习半监督学习强化学习等组成。

统计学习方法概括如下:从给定的、有限的、用于学习的训练数据集合出发,假设数据是独立同分布产生的;并且假设要学习的模型属于某个函数的集合,称为假设空间;应用于某个评价准则,从假设空间中选取一个最优的模型,使它对已知训练数据及未知测试数据在给定的评价准则中有最优的预测;最优模型的选取由算法实现

实现统计学习方法的步骤如下:

1. 得到一个有限的训练数据集合;

2. 确定包含所有可能的模型的假设空间,即学习模型的集合;

3. 确定模型选择的准则,即学习的策略;

4. 实现求解最优模型的算法,即学习的算法;

5. 通过学习方法选择最优模型;

6. 利用学习的最优模型对新数据进行预测或分析。

统计学习研究一般包括:统计学习方法统计学习理论统计学习应用统计学习方法的研究旨在开发新的学习方法;统计学习理论的研究在于探求统计学习方法的有效性与效率,以及统计学习的基本理论问题;统计学习应用的研究主要考虑将统计学习方法应用到实际问题中去,解决实际问题。

监督学习

监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。

在监督学习中,将输入和输出所有可能取值的集合分别称为输入空间输出空间

每个具体的输入是一个实例,通常由特征向量表示,所有特征向量存在的空间称为特征空间

在监督学习中,将输入和输出看作是定义在输入空间和输出空间上的随机变量的取值

回归问题:输入变量与输出变量均为连续变量的预测问题。

分类问题:输出变量为有限个离散变量的预测问题。

标注问题:输入变量与输出变量均为变量序列的预测问题。

监督学习假设输入与输出的随机变量 X 和 Y 遵循联合概率分布 P(X,Y)。训练数据与测试数据被看作是依联合概率分布 P(X,Y) 独立同分布产生的。统计学习假设数据存在一定的统计规律,X 和 Y 具有联合概率分布的假设就是监督学习关于数据的基本假设

模型属于输入空间到输出空间的映射的集合,这个集合就是假设空间

监督学习的模型可以是概率模型非概率模型,由条件概率分布 P(Y|X)决策函数 Y=f(X) 表示。

监督学习分为学习和预测两个过程,由学习系统预测系统完成。

统计学习三要素

方法=模型+策略+算法:统计学习方法都是由模型、策略和算法构成,这称为统计学习三要素

模型

统计学习首要考虑的问题是学习什么样的模型。在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。

我们称由决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型

策略

统计学习接着需要考虑按照什么样的准则学习或选择最优的模型。

损失函数:度量模型一次预测的好坏。

风险函数:度量平均意义下模型预测的好坏。

监督学习用损失函数(或称代价函数)来度量预测错误的程度。

统计学习常用的损失函数有以下几种:

(1)0-1 损失函数

(2)平方损失函数

$$L(Y,f(X))=(Y-f(X))^2$$

(3)绝对损失函数

$$L(Y,f(X))=\left | Y-f(X) \right |$$

(4)对数损失函数或对数似然损失函数

$$L(Y, P(Y|X))=-logP(Y|X)$$

损失函数值越小,模型就越好。损失函数的期望称为风险函数期望风险

$$R_{exp}(f)=E_p[L(Y,f(X))]=\int _{X\times Y}L(y,f(x))P(x,y)dxdy$$

由于联合分布 P(X,Y) 是未知的,因此风险函数(期望风险)不能直接计算

风险函数虽然不能直接计算,却可以尽可能去近似它。

经验风险经验损失是模型 f(X) 关于训练数据集的平均损失。

$$R_{emp}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))$$

经验风险是模型关于训练样本集的平均损失。根据大数定律,当样本容量 N 趋于无穷时,经验风险趋于风险函数

监督学习的两个基本策略:经验风险最小化结构风险最小化

经验风险最小化(Empirical Risk Minimization, ERM)的策略认为,经验风险最小的模型是最优的模型。根据这一策略,求最优模型就是求解最优化问题:

$$\underset{f\in F}{min}R_{emp}(f)$$

当样本容量足够大,ERM 能保证有很好的学习效果,在现实中被广泛采用。比如,极大似然估计就是 ERM 的一个例子。当模型是条件概率分布,损失函数是对数似然函数时,ERM 就等价于极大似然估计。

但是,当样本容量很小时,ERM 的效果未必很好,容易产生过拟合现象。

结构风险最小化(Structural Risk Minimization, SRM)是为了防止过拟合而提出来的策略。SRM 等价于正则化,SRM 在 ERM 基础上加上表示模型复杂度的正则化项。结构风险定义为:

$$R_{struc}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f)$$

其中 J(f) 表示模型的复杂度。

SRM 策略认为结构风险最小的模型是最优的模型,所以求最优模型就是求解最优化问题:

$$\underset{f\in F}{min}R_{struc}(f)$$

贝叶斯估计中的最大后验概率估计就是 SRM 的一个例子。当模型是条件概率分布、损失函数是对数似然函数、模型复杂度由模型的先验概率表示时,SRM 就等价于最大后验概率估计。

算法

算法是指学习模型的具体计算算法。算法考虑的是用什么样的计算方法求解最优模型。

前面由于统计学习问题归结为了最优化问题,于是算法就是求解最优化问题的算法。

模型评估和模型选择

不同的学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差和模型的测试误差自然称为学习方法评估的标准。

注意,这里的评估不能跟前面的策略搞混。这里的损失函数也不能跟前面的损失函数搞混。统计学习方法具体采用的损失函数未必是评估时使用的损失函数

上一节的过程是学习模型的过程,我们选用了不同的模型三要素,进行训练学习,得到了不同模型。而本节的模型评估和模型选择,是对于这些已经学得的模型,进行进一步的评估和处理。

训练误差是模型关于训练数据集的平均损失

$$R_{emp}(\hat{f})=\frac{1}{N}\sum_{i=1}^{N}L(y_i,\hat{f}(x_i))$$

测试误差是模型关于测试数据集的平均损失:

$$e_{test}=\frac{1}{{N}'}\sum_{i=1}^{{N}'}L(y_i,\hat{f}(x_i))$$

训练误差:对于判断给定的问题是不是一个容易学习的问题是有意义的,但本质上并不重要。

测试误差:反映了学习方法对未知的测试数据集的预测能力(泛化能力),是学习中的重要概念。

给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。

当我们的模型表现不佳时,通常是偏差方差过高出现的问题。

偏差:描述模型输出结果的期望与样本真实结果的差距。

方差:描述模型对于给定值输出稳定性

所选择的模型应该逼近真模型。具体地,所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高,这种现象称为过拟合。过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。模型选择旨在避免过拟合并提高模型的预测能力。

在学习时要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,已达到使测试误差最小的学习目的。常用的模型选择方法:正则化交叉验证

模型选择的典型方法是正则化,正则化是结构风险最小化策略的实现。 正则化的作用是选择经验风险与模型复杂度同时较小的模型。

另一种常用的模型选择方法是交叉验证

如果给定的样本数据充足,进行模型选择的简单方法是随机地将数据集分为三部分:训练集验证集测试集

训练集用于训练模型;验证集用于模型的选择;测试集用于最终对学习方法的评估。

但是在许多实际应用中数据是不充足的,为了选择好的模型,可以采用交叉验证方法

交叉验证的基本思想是重复地使用数据。交叉验证的种类:

1. 简单交叉验证:首先随机地将数据分为训练集和测试集两部分;然后用训练集在各种条件下(不同参数个数)训练模型,得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型。

2. S 折交叉验证(应用最多):首先随机地将已给数据切分为 S 个互不相交的大小相同的子集;然后利用 S-1 个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的 S 种选择重复进行;最后选出 S 次评测中平均测试误差最小的模型。

3. 留一交叉验证:S 折交叉验证的特殊情形(S=N),往往在数据缺乏的情况下使用。

泛化能力

学习方法的泛化能力:该方法学习到的模型对未知数据的预测能力,是学习方法本质上的重要的性质。现实中采用最多的办法是通过测试误差来评价学习方法的泛化能力。但这种评价是依赖于测试数据集的。因为测试数据集是有限的,很有可能由此得到的评价结果是不可靠的。

泛化误差就是所学到的模型的期望风险。

生成模型与判别模型

监督学习方法又可以分为生成方法判别方法。所学到的模型分别称为生成模型判别模型

生成方法由数据学习联合概率分布 P(X,Y)然后求出条件概率分布 P(Y|X) 作为预测的模型(即生成模型):

$$P(Y|X)=\frac{P(X,Y)}{P(X)}$$

之所以称为生成方法,这是因为模型表示了给定输入 X 产生输出 Y 的生成关系。注意:生成方法可以还原出联合概率分布 P(X,Y)。典型的生成模型有:朴素贝叶斯法、隐马尔科夫模型。

判别方法由数据直接学习决策函数 f(X) 或者条件概率分布 P(Y|X) 作为预测的模型(即判别模型)。判别方法关心的是对给定的输入 X,应该预测什么样的输出 Y。典型的判别模型包括:k 近邻法、感知器、决策树、逻辑回归、最大熵模型、支持向量机、提升方法、条件随机场等。

生成方法的特点:

1. 可以还原出联合概率分布 P(X,Y),而判别方法不能;

2. 学习收敛速度更快

3. 存在隐变量,仍可以用生成方法学习,判别方法不能。

判别方法的特点:

1. 直接学习条件概率或决策函数;

2. 直接面对预测,往往学习的准确率更高;

3. 可以对数据进行各种程度的抽象、定义特征并使用特征,简化学习问题。

分类问题

当输出变量 Y 取有限个离散值时,预测问题便成为分类问题

评价分类器性能的指标有很多,以下分别介绍。

准确率:对于给定的测试集,分类器正确分类的样本数与总样本数之比。

对于二分类问题,以关注的类为正类,其他类为父类,以下是二分类的混淆矩阵

准确率:$A=\frac{TP+TN}{P+N}$

精确度:$P=\frac{TP}{TP+FP}$

召回率:$R=\frac{TP}{TP+FN}$

F1 值:精确度和召回率的调和均值,$\frac{2}{F_1}=\frac{1}{P}+\frac{1}{R}$

参考:《统计学习方法》李航

本文到此结束,如有建议或意见,请留言反馈。

转载于:https://www.cnblogs.com/noluye/p/11241843.html

统计学习方法基础总结相关推荐

  1. 《机器学习与数据科学(基于R的统计学习方法)》——2.11 R中的SQL等价表述...

    本节书摘来异步社区<机器学习与数据科学(基于R的统计学习方法)>一书中的第2章,第2.11节,作者:[美]Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区& ...

  2. 4000字超干货!《统计学习方法》啃书指南(1)

    事半功倍的啃书姿势内容分以下六个部分: 一.我的学习历程(不喜欢听啰嗦的可以从第二部分开始) 二.学习<统计学习方法>遇到的困难 三. 在学习过程中碰过的壁 四.最后解决问题的方法 五.学 ...

  3. 重磅开源!所有的李航老师《统计学习方法》算法代码实现!!!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 超有料的仓库项目资源---<统计学习方法>代码 李航老师的<统计 ...

  4. 李航-统计学习方法-笔记-1:概论

    写在前面 本系列笔记主要记录<统计学习方法>中7种常用的机器学习分类算法,包括感知机,KNN,朴素贝叶斯,决策树,逻辑斯谛回归与最大熵模型,SVM,boosting. 课本还涉及到3种算法 ...

  5. 文本分类入门(三)统计学习方法

    文本分类入门(三)统计学习方法 前文说到使用统计学习方法进行文本分类就是让计算机自己来观察由人提供的训练文档集,自己总结出用于判别文档类别的规则和依据.理想的结果当然是让计算机在理解文章内容的基础上进 ...

  6. 手机上的机器学习资源!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现!...

    吴恩达机器学习.深度学习,李航老师<统计学习方法>.CS229数学基础等,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成 ...

  7. 机器学习初学者手抄本:数学基础、机器学习经典算法、统计学习方法等

    机器学习怎么学?当然是系统地学习了.没有时间这么办呢?利用碎片时间学习!很多人一天要花 2 个小时通勤,通勤路上有很多时间看手机.于是我把一些机器学习的基础知识做成了在线的机器学习手册,只需打开微信收 ...

  8. 复现经典:《统计学习方法》第21章 PageRank算法

    第21章 PageRank算法 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者&q ...

  9. 数学基础、机器学习经典算法、统计学习方法,这份机器学习在线手册来帮你...

    机器学习怎么学?当然是系统地学习了.没有时间这么办呢?利用碎片时间学习!很多人一天要花 2 个小时通勤,通勤路上有很多时间看手机.于是我把一些机器学习的基础知识做成了在线的机器学习手册,只需打开微信收 ...

最新文章

  1. iOS - 图文混排技术方案分享
  2. 【opencv】22.HOG的原理与详细步骤
  3. boost::hana::negate用法的测试程序
  4. [剑指offer]面试题第[42]题[Leedcode][JAVA][第53题][最大子序和][动态规划][贪心][分治]
  5. UIActionSheet与UIAlertView
  6. 20天掌握Pytorch文档链接
  7. PHP中三元运算符的用法_php 三元运算符实例详细介绍
  8. Ubuntu18.04进入命令行模式和recovery-mode安装软件
  9. 190617每日一句;我们可以普通,但我们必须拒绝平庸,别再去追随他人的脚步,开拓属于自己的道路
  10. HDFS中的NameNode和DataNode
  11. WINCC AUDIT审计组建教程
  12. 郝斌c语言视频笔记,郝斌老师C语言专题笔记
  13. C语言中的 pow 函数 使用方法及注意事项,和常见报错原因,且分享实战中的使用
  14. 系统设计系列之如何设计一个短链服务
  15. onedrive 添加到本地硬盘_Win10系统OneDrive映射到本地磁盘的解决设置技巧
  16. ps如何放大缩小图层
  17. F28335第十二篇——串口拓展(XR16C854)
  18. day4 css复合选择器元素背景
  19. Arduino 水滴检测
  20. html css齿轮滚动特效,纯CSS3实现的齿轮滚动动画

热门文章

  1. Android-apk文件反编译
  2. Struts2中的值栈
  3. java基础-关键字-native
  4. javascript 用函数语句和表达式定义函数的区别详解
  5. LLBL Gen 3.x 源代码追踪与解析 Type Converter 类型转换器
  6. 美团提出具有「位置编码」的Transformer,性能优于ViT和DeiT
  7. 哈工大与北大提出注意力引导的图像去噪
  8. 【Java架构师】JVM性能优化(一)JVM技术入门下
  9. 【TensorFlow】TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)
  10. linux ruby作用域,细说Ruby细化