吴恩达机器学习第六周周报

目录

摘要

选择拆分的信息增益

独热编码

 连续数字特征值

回归树

决策树的集成

替换采样(Bagging)

随机森林算法

XGBoost

设置叶子节点的值

结点的分裂

总结


摘要

        本周对决策树相关的各种理论、生成技术、优化决策树的方法、Bagging算法、随机森林算法、对XGBoost算法中生成弱学习器(决策树)的标准:每棵树的目标函数最小时,进行了数学公式推导。

选择拆分的信息增益

从树的根节点处的所有训练示例开始,计算所有可能特征的信息增益,并选择要拆分的特征,从而提供最高的信息增益。选择此功能后,将根据所选功能将数据集拆分两个子集,并创建树的左右分支,并将训练示例发送到左侧或右侧分支,具体取决于该功能的值,对于那个例子。

停止标准:1.当一个节点100%是单个子句时,某人的熵已经达到零。2.进行进一步拆分节点将导致树超过设置的最大深度时。3.或者信息从额外的拆分小于阈值。4.或者节点中的示例数量低于阈值。

独热编码

        对于两个以上离散值的特征,我们使用单热编码来解决此类特征。例如一个特征有三个离散值时,分别将这三个离散值单独抽出来成为一个新的特征,就由原来的一个特征变为三个特征了,然后这三个特征的特征值只能取0或1,并且三个特征同时只能有一个1。同时这个技术也是一种不仅仅适用于决策树学习的技术,还可以使用1和0对分类特征进行编码,这样它就可以作为输入提供给神经网络,神经网络可以将数字作为输入。

 连续数字特征值

如何特征是可以取任何值的数字,而不仅仅是少量的离散值?让决策树处理可以是任意数字的连续值特征。尝试不同的阈值,进行通常的信息增益计算,并使用所选阈值对连续值特征进行拆分,选择能提供最大的信息增益的阈值进行拆分。

回归树

如何选择划分,计算左右子树的加权熵(权重的方差*示例/总例子),求和,选择最低的值的划分。和选择提供最大信息增益的特征一样,选择最大方差减少的特征。

决策树的集成

            使用单个决策树时,如果样本发生了一点点变化就会导致,整个决策树发生巨大的改变,因为是递归运行的,所以我们使用多个决策树,可以使我们的预测变得更加精准。如果有一个想要分类的新测试示例,那么就是在新示例上运行所有的决策树,并让他们投票决定它是否是最终预测。

替换采样(Bagging)

       是并行式集成学习方法的代表,直接基于自助采样法,给定包含M个样本的数据集,先随机取出一个放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过M次随机采样操作,得到M个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的从未出现。然后基于每个采样集训练出一个决策树(也叫基学习器),再将这些基学习器相结合。通常对分类任务使用简单投票法,对回归任务使用简单平均法,若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终结果。

随机森林算法

        它是一种强大的树样本算法,比使用单个决策树效果更好。B值设置得更大不会损害性能,但超过某个点后,最终会得到收益递减的效果,而且当B远大于100左右时,它实际上并没有变得更好。用替换采样,生成的数据集来训练决策树,然后再进行替换采样,再训练新的决策树,直到生成B颗决策树。也称为袋装决策树。

操作步骤是:

(1)每次有放回地从训练集中取出 n 个训练样本,组成新的训练集;

(2)利用新的训练集,训练得到M个子模型;

(3)对于分类问题,采用投票的方法,得票最多子模型的分类类别为最终的类别;对于回归问题,采用简单的平均方法得到预测值。

随机森林以决策树为基本单元,通过集成大量的决策树,就构成了随机森林。

值得注意的是,即使使用这种带有替换过程的采样,有时最终还是会在根节点处始终使用相同的拆分,而在根节点处使用非常相似的拆分。因此对算法进行了一次修改,以进一步尝试随机化每个音符的特征选择,这可能导致树集和最开始的训练的树彼此之间变得更加不同。所以在基决策树中,先随机选择K少于N个特征的子集,再从K个特征中选择具有最高信息增益的特征作为使用分割的特征选择。一般情况下,K值的典型选择是作为N的平方根。

XGBoost

        是决策树集成或决策树最常用的方法之一。运作方式为,给定训练集然后进行调整大小,抽取B次,组成新的训练集,然后在新的数据集上训练决策树。构建下一个决策树时,将更多地关注还没有做好的例子。因此,不是查看所有训练示例,而是更多地关注示例的子集。

        1、XGboost的基本组成元素是:决策树;我们将这些决策树成为”弱学习器“,这些”弱学习器“共同组成了XGboost

        2、组成XGBoost的决策树之间是有先后顺序的;后一棵决策树的生成会考虑前一棵决策树的预测结果,即将前一棵决策树的偏差考虑在内(在目标函数中有体现)

        3、生成每棵决策树使用的数据集,是整个数据集。所以可以将每棵决策树的生成都看作是一个完整的决策树生成过程。

设置叶子节点的值

        怎么做出预测:

        一个新样本的预测:新样本依次进入XGBoost的每棵决策树。在第一棵决策树,有一个预测值;在第二棵决策树,有一个预测值,依次类推,直到进入完所有”弱学习器“(决策树)。最后,将“在每一颗决策树中的值相加,即为最后预测结果。

        XGboost的”弱学习器“是”决策树“,每棵”决策树”都是目标函数值最小时的模型。只有这棵“决策树”的目标函数值最小,才会被选为“弱学习器”。要生成一棵好的决策树,目标是:是其目标函数值最小。那问题是,我们该如何使得其最小呢?其中,涉及到两个问题: 怎么设置叶子节点的值?如何进行结点的分裂(怎么构造树的结构)?

         应该将叶子结点Wj的值为-Gj/(Hj+λ ) 此时该树的目标函数最小。

        叶子结点的值和目标函数的大小,与“前k-1个决策树”的偏差有关。

结点的分裂

当将这个结点分裂后,形成的新的树的目标函数值比之前的小,才分裂。换句话说,就是分裂后的树一定要比分裂前的树,目标函数更小。

 这里有一个惩罚项 r,表示有时候增益太小的话,相比于增加模型复杂度的副作用,不选择进行分裂

如果当前结点A要分裂成B和C,原先A结点的目标函数值,减去B和C部分的目标函数值的和。如果大于0,则代表分裂有益,可以分裂。

第二层、第三层、重复上述步骤,直到整个决策树所有特征都被使用,或者已经达到限定的层数。

总结

本周最后只是对XGBoost中如何使决策树的目标函数最小进行了数学推导,但是在XGBoost中如何快速生成一个树的问题还没有解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值