决策树与随机森林

一、 决策树的简介

    决策树是一种基本的分类回归方法,学习通常包含三个步骤:特征选择决策树的生成决策树的剪枝

    决策树学习本质是从训练数据集中归纳出一组分类规则;决策树学习的损失函数通常是正则化的极大似然函数,学习策略是由训练数据集估计条件概率模型。

    决策树学习的算法通常是一个递归地选择最优特征,并根据该特征进行分割。这一过程对应着决策树的构建,也对应着特征空间的划分。使得划分之后的各个子集能够被基本分类,那么构建叶节点;否则继续递归划分。

    决策树可能发生过拟合,因此需要剪枝,从下而上进行,减去过于细分的结点,使其会退到父结点。

根节点

非叶子节点(决策点):代表测试的条件,对数据属性的测试

叶子节点:代表分类后所获得的分类标记

分支:代表测试的结果

 

 

   先构建决策树(训练阶段),再使用决策树(分类阶段)

 

二、特征选择

    特征选择的准则:信息增益信息增益比。我们选择信息增益最大的那个分割。

A.熵(entropy)与基尼(Gini)系数

    熵:物体内部的混乱程度或不确定性,熵值越大,则物体内部的混乱程度越大;反之,熵值越低,物体内部纯净度越高

    由熵的公式可知,当物体内部某个类的概率 较小时,则 (负数)的绝对值就越大。由此可知,当物体或集合内部的类别非常多时(即物体内部混乱程度很高),每个类别的概率就会很小,就会导致物体的熵值很高。

 

三、决策树的生成(目的:得到熵值降低速度最快的决策树)

    构造决策树的基本思想:随着树深度的增加,节点的迅速地降低。熵降低的速度(引入信息增益信息增益比的概念)越快越好,以便得到一棵高度最矮的决策树

 

案例

 

    首先,确定根节点,分别假设outlook、temperature、humidity、windy为根节点,求出对应的熵,从而得到信息熵

    然后,再与原始熵对比,得到信息增益信息增益率,从而确定根节点;

    其次,通过递归的方法构造出决策树的其他节点;

    最后,决策树构造完成后,通过评价函数(目标函数)来判断当前的决策树的好坏程度。

    下面计算假设outlook为根节点时对应的熵值

outlook=sunny时,entropy==0.971

outlook=overcast时,entropy=0

outlook=rainy时,entropy==0.971

    根据历史统计数据,outlook取sunny、overcast、rainy的概率分别为5/14、4/14、5/14,所以当outlook为根节点时的信息熵为:

    根据历史数据,新的一天打球的概率是9/14,不打的概率是5/14,则原始熵值(固有熵值)

   信息增益为:

gain(outlook):0.940-0.693=0.247

   同理可以计算出:

gain(temperature)=0.029

gain(humidity)=0.152

gain(windy)=0.048

    综上所述,gain(outlook)最大(即outlook在第一步使得系统的信息熵下降得最快),所以决策树的根节点取outlook

 

ID3算法:信息增益(传统算法)

   --通常情况下,仅仅根据信息增益判断是不靠谱的

   --缺点:当某个特征下的属性非常稀疏(即类别很多),每个属性对应样本的个数又很少时,选用该节点计算熵值时,显然可以使得熵值下降最快,但是该属性很有可能与问题无关,从而引出信息增益率

C4.5算法:信息增益率

   --

   -- C4.5算法是ID3算法的扩展

CART算法:Gini系数

评价函数(目标函数):

   --越小越好,类似损失函数

   -- Nt:每个叶子节点包含的样本数

   -- H(t):叶子节点的自身熵值

    决策树构造完成后,通过评价函数(目标函数)来判断当前的决策树的好坏程度。

    决策树不仅可以处理像上述的离散型属性,也能够处理连续型的属性。首先将连续型属性离散化,把连续型属性的值分成不同的区间,依据是比较各个分裂点的信息增益值的大小。

 

四、决策树的剪枝(目的:得到高度最矮的决策树)

    如果决策树考虑了所有的训练数据集,得到的决策树将会过于庞大。虽然这个决策树对于训练数据集的拟合概率为100%,但是由于过分考虑所有的数据,将数据切得太碎太碎了,这样就会使得决策树学习到一些噪音点、错误点,出现过拟合的现象。

    过拟合的主要原因在于构建决策树时过于复杂。

    决策树的剪枝通过极小化决策树整体的损失函数或代价函数来实现。

4.1 预剪枝

       在构建决策树的过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策树泛化性能提升,则停止划分并将当前节点标记为叶子节点。

   --最小样本数

   --最大深度

4.2 后剪枝

       决策树构建好后,然后自底向上地对非叶子节点进行考察,若将该节点对应的子树替换为叶子节点能带来决策树泛化性能提升,则将该子树替换为叶子节点。

   --

   --叶子节点数越多,损失越大

   -- a:人工设置,该值越大,说明叶子节点数的权重越大;该值越小,叶子节点数影响较小

   -- Tleaf:叶子节点数

 

五、随机森林

采样方式

Bootstraping:有放回采样

Bagging:有放回采样n个样本

 

    对于一个测试数据,将它投入到随机森林中的不同决策树中,会得到不同的测试结果。若问题是一个分类问题,则可以通过求众数来得出测试数据的类别;若问题是一个回归问题,则可以通过求平均值得出测试数据的值。

 

双重随机性

    数据样本采样的随机性:通过从训练数据集中有放回的随机采样,构造出很多的、不同的决策树

   --目的:使得某些决策树选不到异常样本

数据特征采样的随机性:通过从特征中的随机采样(无放回,特征不能重复)构造随机森林

   --目的:使得某些决策树选不到异常特征

更多AI资源请关注公众号:大胡子的AI

欢迎各位AI爱好者加入群聊交流学习:882345565(内有大量免费资源哦!)

版权声明:本文为博主原创文章,未经博主允许不得转载。如要转载请与本人联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华科大胡子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值