以下仅为笔者在学习《统计学习导论-基于r应用》过程中的理解总结,如有错误,敬请指正
统计学习导论概述
什么是统计学习?
对一系列观测值(自变量/预测变量/X,因变量/响应变量/Y)之间的关系进行建模,将得到模型用于新的变量的预测和推断。
预测关心的是预测变量的响应值
推断关心的是预测变量和响应变量之间的具体关系,更加注重模型的可解释性
怎么建模?怎么估计XY之间的关系?
根据模型训练过程中训练集是否有标识相应变量(因变量),可分监督学习和无监督学习
根据是否对模型的函数形式进行提前假设,可分为参数估计和非参数估计
*(非绝对)根据响应变量是定性的,还是定量的,分为分类分析和回归分析
有哪些模型?
总的来说,模型一般分为
- 线性模型
- 非线性模型
线性模型可解释性优于非线性模型,非线性模型更加灵活,也更加复杂,能更好的拟合数据
怎么评估模型的精准度
通过计算模型预测结果和真实响应值之间的接近程度评估模型精准度,用均方误差(MSE)表示
根据用于计算均方差的数据集,均方误差可分为训练均方误差,测试均方误差,通常我们更加关心测试均方误差
线性回归模型
线性回归模型分类
根据预测变量个数,可将线性回归模型分为:
- 简单线性回归模型
- 多元线性回归模型
线性模型建模流程
通常包括:
1 判断变量间是否存在线性关系
- 简单线性模型,即一元线性模型,可用 t检验 判断
- 多元线性模型可用 f检验 判断
2 对存在线性关系的变量,进行线性表达式假设
3 使用最小二乘进行线性表达式的系数估计
4 模型评估,通常计算两个值
- RSE残差标准误
- R^2 相关系数
定性变量问题
根据响应变量类型,建模方法可分为
- 回归
- 分类
回归通常用于处理响应变量为定量变量的问题,但部分定性变量的问题,通过添加哑变量,将分类数值化,也可使用线性回归模型进行拟合
分类
大部分定性响应变量的问题是无法用线性回归模型分析的,分类模型就用于解决这些问题,分类模型的大致原理是,对预测变量的归属于某一分类的可能性做出预测,将分类问题作为概率估计的结果来分析,常用的分析方法有
- 逻辑回归分析
- 线性判别分析
- k最近邻
逻辑回归分析
逻辑回归分析原理是对响应变量属于某种分类的概率进行建模,建模时,通过分对数转换可将逻辑回归模型变为关于X的线性回归模型,之后通过极大似然方法估计回归系数完成模型拟合。
极大似然估计是一种常用的非线性模型拟合方法
线性判别分析
线性判别分析原理是通过对每个响应变量(分类)的预测变量分布情况建模,之后用贝叶斯原理反过来计算在预测变量=x的条件下响应变量属于某一类别的可能性(X=x,Y=k的后验概率)
也就是将对X=x,Y=k的后验概率估计问题转换为对:观测来自k类的先验概率,派k,第k类观测x的密度函数fk(x)的估计
线性判别分析根据预测变量的个数可分为
- 一元线性判别分析
- 多元线性判别分析
一元线性判别分析
每一类中的观测都来自均值不同、方差相同的正态分布
多元线性判别分析
x服从均值不同、协方差矩阵相同的高斯分布
二次判别分析
与线性判别分析相同,二次判别分析假设每个分类的观测服从高斯分布,不同的是,每一类都有自己的协方差矩阵
K最近邻
k最近邻是彻底非参数方法,首先从训练集中选取k个距离预测变量最近的观测记为数据集n0,再计算n0中出现最多次数的类别,这个类别就是预测变量值的估计结果
模型评价
通常通过计算测试误差,进行模型评价,但测试集不易获取,所以一般使用重抽样方法进行模型评估。
重抽样方法通过从测试集中抽样,形成新的子测试集进行模型拟合,以此获得模型的额外信息,常用的两种重抽样方法是
- 交叉验证
- 自助法
交叉验证
交叉验证即在模型拟合过程中,保留训练集的一个子集作为测试集,包括以下两种方法
- 留一交叉验证
- k折交叉验证
留一交叉验证
顾名思义,留一交叉验证即从n个观测中保留1个观测作为测试集,剩余n-1个观测作为训练集,用来拟合模型,重复以上操作n次,每次选取不同观测作为测试集,获得n个测试误差,这n个测试误差的平均值即留一交叉验证的估计值
k折交叉验证
k折交叉验证和留一交叉验证相似,不同的是,k折交叉验证首先将观测等分为k分或k折,在选取其中1折观测作为测试集,剩余k-1折观测作为训练集,用来拟合模型,重复以上操作k次,每次选取不同观测作为测试集,获得k个测试误差,这k个测试误差的平均值即k折交叉验证的估计值
自助法
自助法是通过有放回的从观测中抽样,组成新的子集,也称为自助法数据集,进行模型拟合,因为是有放回的抽样,所以自助法数据集中会包含重复的观测,同时也意味着,会有观测未被抽样,将未被抽样的观测选出作为测试集进行测试误差计算,重复以上步骤多次,将获得的测试误差的平均值即自助法的估计值
线性模型选择与正则化(扩展/优化)
线性模型选择与正则化,也是对线性模型的扩展和最小二乘拟合的优化,方法包括
- 子集选择
- 压缩估计/正则化
- 降维法
子集选择
子集选择是将p个预测变量中和响应变量相关的预测变量选择出来,再对这一子集进行最小二乘拟合,包括以下几种方法
- 最优子集选择
- 向前逐步选择
- 向后逐步选择
- 混合逐步选择
最优子集选择
即从p个预测变量的 2^p 个组合子集拟合的模型中选择最优的子集,其中最优子集是由Cp,AIC,BIC和调整R^2评估的
向前选择
从0模型开始,不断向模型添加预测变量的子集选择方法,每次只将最大限度提升模型效果的变量加入模型中
向后选择
向后选择是一种贪婪的方法,从包括所有预测变量模型开始,逐次迭代,从模型中去除对模型效果最不利的变量
混合选择
混合选择即向前选择和向后选择的混合方法,在逐步迭代加入新变量的同时,也移除对模型最不利的变量
压缩估计/正则化
压缩估计通过对模型系数进行约束或者加罚,使系数向0缩减,通过使用不同的压缩方法,可以使某些系数缩减至0,以此达到模型选择的目的。常用的压缩估计方法包括
- 岭回归
- lasso
岭回归
与最小二乘法类似,通过使RSS最小拟合最小二乘回归,不同的是岭回归在计算最小RSS的表达式中,添加了带有lambda调节参数的压缩惩罚,综合权衡了误差和方差
lasso
lasso是对岭回归的改进,岭回归的缺点是不会将某一系数彻底压缩至0,模型仍包含p个预测变量,lasso通过将压缩惩罚中的平方项改为绝对值克服了这一问题,当调节参数足够大时,可将某些系数估计强制压缩为0
降维法
将原p个预测变量投影在低维空间转换为m个新的变量,将低维空间的m个新的变量作为新的预测变量,再进行最小二乘回归拟合
常用降维方法包括
- 主成分分析
- 偏最小二乘
主成分分析
即计算预测数据的主成分,是一种无监督学习,主成分即所有预测数据最接近的低维线性平面(p个预测变量的线性组合),其中第一主成分方向上数据变化最大
主成分回归方法,即将预测变量的m个主成分(m<p)作为新的预测变量,进行最小二乘回归拟合
偏最小二乘
和主成分回归相似,使用m个原预测变量的线性组合进行最小二乘回归拟合,不同的是偏最小二乘是一种监督学习,利用响应变量信息筛选新变量
非线性模型
非线性模型是对标准线性模型的扩展,分别从去线性和可加性两方面实现
通过去线性扩展的非线性模型有
- 多项式回归
- 阶梯函数
- 回归样条
通过实现整体可加性扩展的模型有
- 广义可加模型
多项式回归
即通过将标准线性模型中的原预测变量替换为其幂函数,在对替换后的模型进行最小二乘回归拟合
阶梯函数
将预测变量取值空间分割为多个简单区域,对每个区域的观测单独拟合常数,将连续的变量转为为有序的分类变量
回归样条
回归样条是一类更加光滑的基函数,是多项式回归和阶梯函数的扩展,包括
- 分段多项式
- 自然样条
分段多项式
对预测变量的取值空间进行分割,对分割后的区间单独拟合低阶多项式回归模型,将整体的高阶多项式模型转换为简单分区的低阶多项式模型,其中系数发生变化的临界点称为结点
自然样条
自然样条是添加了分段边界约束的回归样条,在x大于结点最大值或小雨结点最小的边界区域的函数是线性的
光滑样条
光滑样条是将每个不同预测变量x都设置为结点的自然三次样条,采用“损失函数+惩罚项”的形式,其中惩罚项的调节参数lambda控制样条的粗糙度
局部回归
对某个观测点进行拟合时,只选取该观测点附近的数据作为训练集,并根据它们到观测点的远近分配权重,最后进行加权的最小二乘回归拟合
广义可加模型
通过将标准线模型的原预测变量替换为非线性函数,将每个单独的函数作为一个基础计算模块来进行模型拟合,实现了模型的整体可加性。
基于树的模型
基于树的模型通过分层或分割,将预测变量的取值空间分割为多个简单区域,对落入统一区域的预测变量做相同估计,即预测变量值等于该区域内训练集数据的平均值或众数
常用的基于树的模型有
- 决策树
- 袋装法
- 随机森林
- 提升法
决策树
决策树可分为
- 回归树
- 分类树
两者分割原理相同,不同之处在于,对落入某区域的预测变量的估计值计算,前者取该区域内训练集数据的平均值,后者取训练集中最常见的类别
回归树
回归树构建分为两步
- 将预测变量空间划分为不重叠的多个区域
- 对落入同一区域的预测变量做相同预测,即其预测值等于该区域内所有训练数据的算术平均值
其中特征空间的划分采用递归二叉分裂法, 这是一种自上而下的贪婪方法,分裂时只考虑对当前模型最优的分支,也就是使模型RSS最小的分支,没有考虑对未来分裂的影响
在划分结束后,需要进行剪枝,除去和响应变量关联性弱的分支
袋装法、随机森林、提升法
这三种方法均以树为基本模块,建立更有效的方法
袋装法
通过自助法,即有放回的从训练集中重复抽样,构建多个自助抽样训练集,用来拟合多个子模型,最后将这多个子模型的预测结果求平均值或进行多数投票,即为袋装法对预测变量的预测结果,这样可以有效降低模型方差
模型评价
用于回归问题的袋装法:袋外误差估计
用于分类问题的袋装法;基尼系数,互熵
随机森林
类似于袋装法,通过自助法拟合建立多棵回归树,不同在于随机森林考虑了每个分裂点,分裂时从p个预测变量中选取m个作为候选变量,通常m= √p,这样的操作达到对树去相关性的作用
提升法
同样,类似于袋装法,利用自助法建立多棵树,不同在于,提升法的每棵树都是顺序的,每个模型的建立都和上个模型相关,每建立一棵树,就将新树加入模型并更新模型的rss
支持向量机
支持向量机是对最大间隔分类器的扩展
最大间隔分类器
最大间隔分类器是以最大间隔超平面作为决策边界的分类器,它的分类结果取决于预测变量落入最大间隔超平面的哪一侧
最大间隔超平面
最大间隔超平面也称为最优分类平面,是距离所有预测变量最远的超平面,超平面即p维空间的p-1平面防射空间
支持向量分类器
当预测变量空间线性不可分时,无法获取最大间隔,最大间隔分类器不可用,这种情况可采用支持向量分类器。
支持向量分类器,也叫软间隔分类器,它允许在构建间隔超平面时部分观测落入错误的一侧间隔,设置超平面错误的一侧
支持向量机
支持向量机是对支持向量分类器的扩展,通过向模型中添加核函数,扩大模型的特征空间,使其使用于非线性决策边界问题
常用的核函数有多项式核函数和径向核函数
对于多分类的支持向量机,有一下两种处理方法
- “一类对一类”的分类方法
- “一类对其他”的分类方法
“一类对一类”的分类方法
一类对一类分类,即成对分类,需要构建2^k个支持向量机,每个支持向量机用来预测一对分类,最终分类结果为被分到次数最多的类别
“一类对其他”的分类方法
使用k个支持向量机分类器,用来预测一个类别,和其他第k-1个那边,依次使用k个分类器预测,最终分类结果为被分到次数最多的类别
无监督学习
无监督学习是使用标识的训练集学习的方法,常用的方法有
- 主成分分析
- 聚类分析
主成分分析
主成分分析即对数据集主成分的计算和理解过程, 能够找到一个尽可能包含足够多的数据变异信息的低维表示,他找到的每一个维度都是原始p个特征的线性组合
在进行主成分分析前,变量应该进行标准化,通过中心化使均值为0
主成分是一个与观测数据集最为接近的低维线性空间,第一主成分是标准化预测变量线性组合中方差最大的一组
聚类分析
聚类旨在从观测中寻找同质子类,将数据分割到不同子类中,类中数据相似性很高,类间数据差异性很大
常用的聚类分析算法,包括
- k均值聚类分析
- 系统聚类分析
k均值聚类分析
首先需要预先指定分类个数k,之后随机将训练数据随机分到k个类别中,计算每个分类的聚类中心
根据聚类中心,从新将数据分配到最近的类别中,再次计算聚类中心,再次重新分配
重复上述步骤直到聚类结束
系统聚类分析
不需要指定聚类个数,最终输出结果为有关个观测的谱系图,常用自下而上的凝集法
凝集法
数据自下而上汇合,越早汇合的观测越相似
首先需要指定一个差异指标,通常为欧式距离,之后反复执行:
n个观测各为一类,汇聚两个最为相似的类,
直到所有观测都属于一个类