机器学习算法推导

1、Bootstrap

Bootstrap Method:在统计学中,Bootstrap从原始数据中抽取子集,然后分别求取各个子集的统计特征,最终将统计特征合并。例如求取某国人民的平均身高,不可能测量每一个人的身高,但却可以在10个省市,分别招募1000个志愿者来测量并求均值,最终再求取各省市的平均值。
在这里插入图片描述

2、Bagging

Bagging(Bootstrap Aggregating)应用了 Bootstrap的思想,从Training Set抽取k次subset,分别用来训练k个单独的模型,然后用这k个模型来做预测。最终,如果是Regression问题,则Average k个模型的输出;如果是Classification问题,则进行Majority Vote

3、Random Forest

Random Forest: 和Bagged Decision Tree的大体结构十分相似,Random Forest也是对Training Set进行k次随机抽样、种树、再求取平均(Majority Vote)。但Random Forest修改了Decision Tree中Greedy Search的部分:Decision Tree在每次分割时,会考虑所有的feature,然后选择最佳分割点;Random Forest为了增加随机性,在分割时使用1/3*D( regression), sqrt(D)(classification)的features来做选择,由此也减少了属于书之间的关联性。
在这里插入图片描述

所以说,Bagged Decision Tree只有一个参数,那就是树的数量;而Random Forest却有两个参数:树的数量,以及分割时feature的数量。

4、贝叶斯公式

4.1预习

  • 当两个事件独立无关联时,此时P(AUB)=P(A)+P(B)
  • 当两个事件独立无关联时,此时P(AUB)=P(A)+P(B)-P(AB),如图中阴影部分

4.2 条件概率的意义

  • 情景:小明问小华,今天股市是涨是跌,小华说涨跌各0.5概率,但是小明补充说,昨天美国股市大涨,那么小华立马说今天股市涨的概率是90%,这就是条件概率的意义

4.3 条件概率公式

  • 图解:
  1. 全局域为Ω域,那么阴影部分就是AB同时发生的概率,即阴影部分的面积比上全局域的Ω面积;
  2. 此时求B发生的前提下,A发生的概率,,即域变成了B面积的域,那么变成了阴影部分面积与B面积的比值 ,得到下面的条件概率公式:
    在这里插入图片描述
    将预习带入条件概率公式中,可以得到
  • 当两个事件独立无关联时,此时P(AUB)=P(A)+P(B)—>P(B|A)=P(AB)/P(A)=P(B),因为两个事件独立无关联,所以A发生对B没有影响
  • 当两个事件独立无关联时,此时P(AUB)=P(A)+P(B)-P(AB)—>P(B|A)=P(AB)/P(A),两个事件相关联,所以B受到A的影响
    在这里插入图片描述
    上图中求A的面积相当于求条件概率的各个部分概率相加

4.4 贝叶斯公式

在这里插入图片描述
在这里插入图片描述

4.5 贝叶斯与朴素贝叶斯

  • 朴素贝叶斯的假设前提有两个第一个为:各特征彼此独立;第二个为对被解释变量的影响一致,不能进行变量筛选。
  • 贝叶斯网络在特征彼此不独立情况下,可进行建模。但是贝叶斯网络并不放宽第二个假设,故不能对变量进行筛选,因为视解释变量的作用一致。
. 贝叶斯网络 朴素贝叶斯
假设前提 各变量都是离散型的,各特征有依赖(不确定的因果推理)关系(变量无关),每一个节点在其直接前驱节点的值制定后,这个节点条件独立于其所有非直接前驱前辈节点,P(v|par(v),x1,x2…,xn) = P(v|par(v))贝叶斯网络放宽了每个变量独立的假设 各特征彼此独立,朴素贝叶斯中对于若干条件概率值不存在的问题,一般通过将所有的概率值加1来解决且对被解释变量的影响一致,不能进行变量筛选
应用案例 在信息不完备的情况下通过可以观察随机变量推断不可观察的随机变量,解决文本分类时,相邻词的关系、近义词的关系 分类
缺点 不能对变量进行筛选,因为不能放宽对被解释变量影响一致的假设 彼此不独立的特征之间建立朴素贝叶斯,反而加大了模型复杂性
优点 贝叶斯原理和图论相结合,建立起一种基于概率推理的数学模型,对于解决复杂的不确定性和关联性问题有很强的优势对缺失数据不敏感,可以学习因果关系,加深对数据的理解,能将先验知识融入建模,避免了过度拟合问题,不需要保留数据进行检验 简单,对于给出的待分类项,会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础

6. GBDT

GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,使用的是Boosting的思想。

6.5.1 Boosting思想

Boosting方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。它的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。

Bagging与Boosting的串行训练方式不同,Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练。

6.5.2 GBDT原来是这么回事

GBDT的原理很简单,就是所有弱分类器的结果相加等于预测值,然后下一个弱分类器去拟合误差函数对预测值的残差(这个残差就是预测值与真实值之间的误差)。当然了,它里面的弱分类器的表现形式就是各棵树。

举一个非常简单的例子,比如我今年30岁了,但计算机或者模型GBDT并不知道我今年多少岁,那GBDT咋办呢?

  • 它会在第一个弱分类器(或第一棵树中)随便用一个年龄比如20岁来拟合,然后发现误差有10岁;
  • 接下来在第二棵树中,用6岁去拟合剩下的损失,发现差距还有4岁;
  • 接着在第三棵树中用3岁拟合剩下的差距,发现差距只有1岁了;
  • 最后在第四课树中用1岁拟合剩下的残差,完美。
  • 最终,四棵树的结论加起来,就是真实年龄30岁(实际工程中,gbdt是计算负梯度,用负梯度近似残差)。
  • 为何gbdt可以用用负梯度近似残差呢?

回归任务下,GBDT 在每一轮的迭代时对每个样本都会有一个预测值,此时的损失函数为均方差损失函数,

那此时的负梯度是这样计算的

所以,当损失函数选用均方损失函数是时,每一次拟合的值就是(真实值 - 当前模型预测的值),即残差。此时的变量是,即“当前预测模型的值”,也就是对它求负梯度。

训练过程

简单起见,假定训练集只有4个人:A,B,C,D,他们的年龄分别是14,16,24,26。其中A、B分别是高一和高三学生;C,D分别是应届毕业生和工作两年的员工。如果是用一棵传统的回归决策树来训练,会得到如下图所示结果:

现在我们使用GBDT来做这件事,由于数据太少,我们限定叶子节点做多有两个,即每棵树都只有一个分枝,并且限定只学两棵树。我们会得到如下图所示结果:

在第一棵树分枝和图1一样,由于A,B年龄较为相近,C,D年龄较为相近,他们被分为左右两拨,每拨用平均年龄作为预测值。

  • 此时计算残差(残差的意思就是:A的实际值 - A的预测值 = A的残差),所以A的残差就是实际值14 - 预测值15 = 残差值-1。
  • 注意,A的预测值是指前面所有树累加的和,这里前面只有一棵树所以直接是15,如果还有树则需要都累加起来作为A的预测值。

然后拿它们的残差-1、1、-1、1代替A B C D的原值,到第二棵树去学习,第二棵树只有两个值1和-1,直接分成两个节点,即A和C分在左边,B和D分在右边,经过计算(比如A&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值