统计学习方法笔记(实时更新)

看《机器学习》遇到了不少的麻烦,发现里面的分析完全看不懂啊,然后别人就给推荐了李航的《统计学习方法》,说是讲的更浅显易懂一点,于是尝试一下从这里出发学习
监督学习
输入空间
输出空间
特征空间
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y)分布密度函数
假设空间:模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间
监督学习的模型可以是概率模型或者是决策模型
统计学习三要素:模型、策略、算法
损失函数(代价函数):度量模型一次预测的好坏
风险函数(期望损失)Rexp:度量平均意义下模型预测的好坏,就是损失函数的数学期望,由于输入输出的随机变量满足联合概率分布,所以能用联合概率分布的密度函数P(X,Y)表示出来
学习的目标就是选择期望风险最小的模型
经验风险(经验损失)Remp:模型f(X)关于训练数据集的平均损失
根据大数定律,当训练集样本数N趋于无穷,有期望风险Rexp等于经验风险Remp,但是由于不能趋于无穷大,所以要对经验风险进行矫正,所以引出了监督学习的两个基本策略:经验风险最小化和结构风险最小化
经验风险最小化(ERM):样本足够大时,能保证有很好的学习效果。比如极大似然估计。当样本容量很小时,会产生过拟合现象
结构风险最小化(SRM):是为了防止过拟合而提出来的策略,等价于正则化。结构风险在经验风险上加上表示模型复杂度的正则化项或罚项
正则化:L1正则化 L2正则化
交叉验证
泛化能力:用泛化误差来衡量,就是模型对未知数据预测的误差(期望风险)
泛化误差上界:学习方法的泛化能力往往是通过研究泛化误差的概率上界进行,简称泛化误差上界,是通过比较两种学习方法的泛化误差上界来比较他们的优劣,泛化误差上界通常的性质有:它是样本容量的函数,样本容量增加时,泛化上界趋于0,它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大

感知机
数据集线性可分/线性不可分
损失函数:误分类点到超平面S的总距离

第二章
感知机:优化思路是误分类点到超平面的总距离,优化方法是随机梯度下降法
分为原始形式和对偶形式
这个比较简单,看书就ok,数学推导也不难,稍微记一下就能自己推

第三章
K近邻法(KNN)
模型三要素:距离度量,k值选择,分类决策规则
不同距离度量方法,产生的分类结果不同,首先了解一下各种距离的定义,这里才明白L1范数,L2范数,无穷范数的几何意义

这里一定要贴一下这个大佬的详解,看了之后什么都懂了
https://blog.csdn.net/kingzone_2008/article/details/15073987

首先是LP范数,对应LP距离,它是最一般的定义。在P取2时对应L2范数,即欧式距离。在P取1时对应L1范数,即曼哈顿距离(棋盘距离),它是各分量绝对值之和。P取无穷大时对应无穷范数,它是各个分量距离的最大值

第四章 朴素贝叶斯

第五章 决策树

决策树学习:特征选择、决策树的生成、决策树的剪枝

特征选择准则:信息增益或信息增益比

贝努利分布:两点分布(0-1分布)

对于两个随机变量(X,Y),随机变量X给定的条件下随机变量Y的条件熵H(Y|X),定义为X给定条件下,Y的条件概率分布的熵对X的数学期望

信息增益:表示得知特征X的信息而使得类Y的信息不确定性减少的程度,例如 : 特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)的差。理解:就是求一下Y的熵和考虑了某个特征X的Y的条件熵的差值,通过这个找到信息增益最大的特征,而且由于这里的概率是由数据估计(特别是极大似然估计)得到的,因此叫作经验熵和经验条件熵,用公式表示就是 g(D,A) = H(D) - H(D|A) 其中H(D)就是按熵计算,H(D|A)是所有A的取值的概率乘上对应的H(Dk)的熵,这个H(Dk)中只包含了属于该特征取值的样本

信息增益比:特征A对训练数据集D的信息增益比gR(D,A)定义为其信息增益g(D,A)与训练数据集D关于特征A的值的熵HA(D)之比,就是求出来的信息增益再除以特征A取值的熵。理解:信息增益正常计算,后面要再除以一个D关于特征A的熵,注意这里不是经验条件熵,而是经验熵换了一种计算方法,原来是关于Y的取值的和,现在换成了关于A的取值的和。

决策树生成算法:
ID3算法:思路是设置一个阈值,然后从根节点出发,1、先判断是不是所有样本属于同类,如果属于就是单节点树、构建完成 2、若1不成立判断有没有特征,如果没有特征了就返回单节点树,类数目最多的就是该类 3、若2不成立,计算每个特征的信息增益,然后找最大的特征,它的信息增益和阈值比较,如果比阈值小就按照上一步的没有特征处理,否则就划分出特征取值个子树,每个子树的label是对应样本所占最多的类 4、继续递归,直到返回所有单节点树为止,并且每次选取出特征之后,就把该特征从特征集合中去掉。该算法因为只有树的生成,因此容易过拟合

C4.5生成算法:思路和ID3算法一样,差别是使用增益信息比来选择特征

决策树剪枝:定义损失函数 Ca(T) = C(T)+a|T| 其中右式第一项表示模型与训练数据的拟合程度,第二项表示模型复杂度,a用来控制两者之间的影响。 损失函数极小化,目的就是使得经验风险和结构风险最小化

树的剪枝算法:输入:树T 输出:剪枝后的树Ta
先计算每个结点的经验熵,然后递归的从叶结点向上回缩 回缩后考虑整个树,计算回缩前后的损失函数,如果回缩后损失函数减少,就剪枝,否则部剪枝,然后继续回缩,直到不能继续进行为止

CART算法(分类与回归树算法):
二叉树、 用基尼指数来衡量
基尼指数计算:k个类别是k个p(1-p)累加 , 二分类问题 基尼系数为 2p(1-p)
数据集的特征A条件下,基尼指数计算是 部分样本基尼指数*该部分样本所占总样本比例 的所有样本的累加

第六章 逻辑斯蒂回归、最大熵模型
逻辑斯蒂回归:考虑简单的二分类问题,逻辑斯蒂分布
优化目标是 对数似然函数
采用梯度下降法

最大熵模型
最大熵理论:当有多个模型满足约束条件,选择熵最大的模型
拉格朗日对偶法求解最优化问题
拉格朗日对偶法详解

模型学习的最优化算法
迭代尺度算法
牛顿法:考虑初始点的二阶泰勒展开,如果是高维函数,原函数的一阶导数写成偏导数的向量形式,二阶导数写成海森矩阵的形式,然后令泰勒展开函数的一阶导数等于0,求得递推关系,由于海森矩阵的逆矩阵不好求,因此一般使用逆牛顿法,通过近似不用再求海森矩阵的逆矩阵了,简化计算过程
这个非常厉害的牛顿法总结,必看!
拟牛顿法:牛顿法的改进,因为每次迭代都要计算海森矩阵的逆矩阵,很难实现,因此用了某种近似的方法来模拟海森矩阵

第七章 支持向量机
线性可分支持向量机:首先理解样本的 和 数据集的 函数间隔 和 几何间隔的概念,然后目标函数是最大化几何间隔,约束条件是每一个样本的几何间隔都大于数据集的几何间隔。
凸优化问题:p100页 目标函数、不等式约束函数是Rn上连续可微的凸函数、等式约束函数是Rn的仿射函数(f(x)= ax+b,且a,b,x属于Rn)
凸二次规划:在凸优化问题基础上,当目标函数是二次函数、且不等式约束函数是仿射函数,凸优化问题变成了凸二次规划问题
凸函数、凸优化、凸二次规划问题详解

线性可分支持向量机模型和最大间隔学习算法推算思路:
1.目标函数、约束条件:几何间隔、样本集合间隔大于等于数据集几何间隔
2.拉格朗日对偶法求解、对偶形式 极大极小,拉格朗日乘子的a >=0 这个约束条件很关键
3.先求极小, 求L(w,b,a)的极小,分别对w,b求偏导,令偏导为0,然后求出w + 一个约束,代回,找到极小的表达式,就构成了一个新的凸二次优化问题,约束条件变为a>=0 和 刚才求得的那个约束
4.再求极大(直接把极大的结果用对偶形式的解表示出来),然后w就可以用对偶形式的解表示出来,主要是b怎么表示,这里用到了KKT条件中的一条,对偶互补条件,由对偶形式的解必不为0向量(因为如果为0向量,则w就为0向量,这与线性可分矛盾),那么必存在一个aj>0, 这是个特殊情况,我理解为特解,就是b是由特解表示的,这个aj放进对偶互补条件里,然后再求b就解出了b
5.最后就获得了分离超平面,用对偶形式的解来描述出来即可

第八章 提升算法
Adaboost算法:将多个弱学习算法合成强学习算法的方法
实现过程:1.找到一个弱学习算法 G(x) 2.计算分类错误率(即为错分样本的权值之和)3.计算阿尔法(即该弱学习算法的权值) 4.更新权值 反复迭代M次,共找到M个弱学习方法,组成一个加法模型,就是最终的强学习方法

这篇博客总结的推导算法比书上详细一点

推导思路:这个问题是一个线性模型,采用前向分步算法(迭代思想),每次考虑单步的LOSS,LOSS是指数损失函数,表示为 exp(y*f(x)),这里比较关键的一点是,把f(x)的递推关系式套进去,能提出来一个W 形如fm-1(x)的LOSS,这就是对应的权重 接着对损失函数极小化,求两个参数G(x)和 阿尔法,其中G(x)是根据样本和权值选择的学习算法 阿尔法则是损失函数偏导为0计算出来的,然后考虑权重推导 权重形式上就是fm+1的LOSS,根据递推公式 加上 上一个权重,就能推出权重的递推关系

提升树算法
分类问题:使用指数损失函数,对于二分类问题,就是把Adaboost的弱分类器换成二叉树即可,相当于Adaboost的特殊情况。
回归问题:使用平方误差损失函数作为损失函数
回归问题提升树算法:
1.初始化f(x)=0
2.在0-M迭代:
计算残差、拟合残差学习一个回归树、更新分类器
3.得到回归问题提升树

回归问题提升树算法推导:
思路是,首先写出模型,他是一个加法模型,采用前向分布算法,计算每步的LOSS,然后求得最小化LOSS的参数,它的LOSS是平方误差函数,因此化简成了(残差-弱学习树)^2的形式,可以看出弱学习树只要拟合残差,得到的LOSS就是最小的,因此参数确定了,就是拟合残差的时候。

梯度提升算法
它与提升树算法不同之处在于它的LOSS不是采用平方误差损失函数 和 指数损失函数,而是采用一般损失函数
思路是用LOSS的负梯度作为残差的近似
思路:1.初始化,找到一个c使得loss最小化(而不是令其等于0)2.在0-M迭代 计算负梯度、对负梯度拟合一个区域、计算使得LOSS最小的c、更新回归树模型3.得到回归树

EM算法(期望极大算法)
EM算法基于极大似然估计,用于含有隐变量的极大似然估计
贴一个大佬的EM算法博客,总结的非常到位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值