统计学习方法笔记
目录
8 提升方法——AdaBoost,提升树(分类,回归),梯度提升树(GBDT)
1 统计学习方法概论
监督学习:分类、回归、标注;非监督:聚类
常用损失函数:0-1损失函数,平方损失函数,绝对损失函数,对数损失函数。
正则化:经验风险是训练集的误差,结构风险是模型使用不当的风险(过拟合,使用正则化)。正则化项有参数向量的L1或L2范数。
交叉验证:简单交叉验证(70%训练,30测试);S折交叉验证(数据分成S组,S-1组训练,剩下一组测试,选S组测试中误差最小的模型);留一交叉验证(S折交叉验证中S=N,即N-1个数据训练,留一个数据测试),在数据缺乏的情况下使用。
评价分类:一般是分类准确率,对于二分类,一般使用精确率P和召回率R。P = TP/(TP+FP),R=TP/(TP+FN)。P是正类预测为正类的量在(正类预测为正类+负类预测为正类)也就是在所有预测的正类中的比例。R是正类预测为正类的量在(正类预测为正类+正类预测为负类)也就是实际为正类中被召回的比例。
调和均值F1值,2/F1 = 1/P + 1/R,也即是F1 = 2PR/(P+R),P和R都高时,F1也会高。
2 感知机
线性分类模型,sign(w*x + b),大于0为正类,小于0为负类。wx+b=0为一个分离超平面,w是法向量,b是截距。
代价函数:误分类点到超平面的距离
算法:采用随机梯度下降的方法,每次选取一个点进行梯度下降
当数据集线性可分时,一定收敛。
3 k近邻法
算法: 计算输入向量距离每一个样本的距离,选取最近的k个样本,其中数目最多的类为此类的分类决策
k近邻法没有显示的学习过程。当训练集、距离度量方法、k值、分类决策规则(如多数表决)确定后,对于任意一个新的输入实例,它所属的类唯一确定。
距离度量为Lp,通常p取2。为提高k近邻搜索的效率,可以使用kd树方法。1-先将训练集构造成平衡树;2-进行搜索
4 朴素贝叶斯法
先验概率,指已知所有数据,计算其中的概率,是训练集中已知的概率。
后验概率,指已知输入,猜测每个输出的概率,是被测试得出的概率
极大似然估计:计算每个概率,有可能出现为0的概率。
朴素贝叶斯估计:在原来的基础上,计算先验概率时,分子加lambda,分母加K*lambda;计算条件概率时,分子加上lambda,分母加上Sj*lambda,Sj是每一个特征j的可能取值有Sj个
算法:
1> 计算先验概率,每个类在训练集中的概率;计算条件概率,每个类k中的每一个特征j中的每个可能取值aji的概率。
2> 对于给定特征,计算这些特征在每个类k中可能发生的概率。因为假设特征之间独立同分布,因此概率相乘即可
3> 选择最大后验概率的类。
5 决策树——ID3,C4.5,CART
决策树学习算法:特征选择、决策树的生成、决策树的剪枝
特征选择:输入为数据集和特征A,输出最优特征
- 计算数据集经验熵:数据集的经验熵,数据集分类的不确定程度
- 计算特征A对数据集的经验条件熵:给定特征,根据该特征分类,计算该情况下的经验条件熵。条件熵计算公式:定义为给定条件X下,Y的条件分布概率的熵对X的期望。在数据集中的解释是:给定特征A,计算根据A分类的子集和子集的概率,此概率用来计算对A条件的期望;再对每一个子集,计算该子集中进行分类的熵(分子是各类的数量,分母是子集数量,也即是给定A,分类的条件概率分布的熵)。总的来说,先用特征分类,分类后的子集中计算条件熵,再用分类的结果(概率)求条件熵的期望。
- 计算信息增益
决策树的生成:ID3使用信息增益,C4.5使用信息增益比
决策树的剪枝:
|T|为叶子节点的个数,Nt为叶子节点上的样本点数,Ht为叶子节点的经验熵。如果叶节点回缩到父节点之后对应的损失函数降低,则剪枝。直至不能剪枝,得到损失函数最小的子树
CART算法:决策树是二叉树,回归树用平方误差最小化准则,分类树用基尼指数最小化准则。
6 逻辑回归与最大熵模型
逻辑回归:二项式逻辑回归p(y=1|x) = exp(wx)/(1+exp(wx)), p(y=0|x) = 1/(1+exp(wx)). 可以推广到多分类
对数几率log(p/(1-p)) = wx 为线性。对数似然函数L(w) = sigma(ylog(hx) + (1-y)log(1-hx)), hx = exp(1+exp(wx))
7 支持向量机——序列最小化SMO算法
线性可分支持向量机
线性可分对偶算法:
线性不可分:加上一个松弛变量
非线性支持向量机算法:使用核函数,将原来的特征计算相似度
序列最小化算法SMO算法
8 提升方法——AdaBoost,提升树(分类,回归),梯度提升树(GBDT)
AdaBoost(Adaptive Boosting):
1>初始化数据集分布D
2>训练数据,得到分类器G(x)
- 计算在训练集上的分类误差e_m
- 根据误差计算此分类器的权重alpha_m
- 更新数据集分布D
3>进行M次之后,最终分类器为子分类器的线性组合
提升树:二分类、回归
二分类提升树算法,上述AdaBoost中基本分类器使用二类分类树即可。
对于回归问题的提升树,算法如下:
1>初始化f0=0
2>学习一个回归树
3>对每一个训练数据计算残差,通过残差继续学习一个回归树
梯度提升树GBDT(Gradient Boosting Decision Tree):
对于一般损失函数,其中的残差换成负梯度。
本文来自博客园,作者:Bingmous,转载请注明原文链接:https://www.cnblogs.com/bingmous/p/15643737.html