机器学习--决策树和随机森林简介

基本介绍

    决策树是在数据挖掘中一种比较有效的算法。简单理解就是根据数据集中的特征值信息逐步分支,其每一个非叶子节点分支类似if-else结构,叶子节点对应分支结果,逐步分支直到不可分的节点或自定义的节点,整个决策过程最后形成了一棵倒立的树冠。

       决策树是一种监督学习算法,有分类和回归两种方法,本文主要以分类过程做介绍。决策树可适用的数据类型有数值型和标称型,通常是样本使用数值型,决策结果可以是数值或标称型。

 

名词解说

    信息熵(Entropy)    熵定义为信息的期望值,信息熵是样本集合纯度的指标,即信息熵值越小,其样本集合的纯度越高

    信息增益         样本在划分前后信息熵之差

    信息增益率     以特征  作为分隔节点时的信息增益除以 特征 的“固有值”

    基尼值 (Gini)   类似信息熵,也是样本集合纯度的度量指标,即基尼值 越小,则样本集合的纯度越高

    决策树剪枝    决策树容易形成过拟合,因而需要对树进行剪枝,通常剪枝有向前或向后剪枝 

    更多详细解释及相关公式参考 http://blog.csdn.net/cxmscb/article/details/53541224

 

算法分类

    目前主要有这几个版本ID3, C4.5/C5.0 CART,  其中C4.5是继承ID3C5.0C4.5的升级版,CARTC4.5类似,主要不同是在回归方法中支持数值标称变量。在sklearnDecisionTreeClassifier使用的是优化的CART算法。

  

建造一棵树的基本过程

      数据集准备      将准备的数据做好预处理,需要将样本数据转换为数值型

      数据集分析      特征选择,从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,

                 如何选择特征根据数据集有着很多不同量化评估标准标准,比如

                              ID3 使用信息增益g(D,A)进行特征选择 
                              C4.5:使用信息增益率,公式为 信息增益率=g(D,A)/H(A) 
                              CART:使用基尼系数 

                             根据不同评估标准从而衍生出不同的决策树算法。

      构造决策树    根据选择的特征评估标准,从上至下递归地生成子节点,

               直到数据集不可分则停止决策树停止生长。

      对树进行测试   测试前通常需要对树进行剪枝,由于决策树容易过拟合,一般需要进行剪枝操作

                 缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种

      树模型使用     将训练测试好的树模型保存以用于数据分析

 

树模型优缺点和应用

    优点  

       计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关的特征数据。

       效率高,决策树只需要一次构建,就可以反复使用,每一次预测的最大计算次数不超过决策树的深度。

    缺点  

    准确度不高,方差过大,另外容易产生过度拟合(Over fitting )

    应用 

    如邮件分类,银行贷款决策,根据天气预测活动等等

  

随机森林

    随机森林可以简单理解为bagging 策略 + 决策树

       Bagging( bootstrap aggregation)的策略:从样本集中进行有放回地选出n个样本;在样本的所有特征上,对这n个样本建立分类器;重复上述两步m次,获得m个样本分类器; 最后将测试数据都放在这m个样本分类器上,最终得到m个分类结果,再从这m个分类结果中决定数据属于哪一类。

    随机森林在一定程序上提高了泛化能力,而且可以并行地生成单棵树,与bagging策略相比,他做了些调整, 如下:

      1. 从训练样本集中使用Bootstrap采样(随机有放回)选出n个样本。

      2. 假如样本共有b个特征,从这b个特征中只随机选择k个特征来分割样本,通过计算选择最优划分特征作为节点来划分样本集合来建立决策树。(与Bagging的不同之处:没有使用全部的特征,这样可以避免一些过拟合的特征,不再对决策树进行任何剪枝)

     3. 重复以上两步m次,可建立m棵决策树 这m棵决策树形成了森林,可通过简单多数投票法(或其他投票机制)来决定森林的输出,决定属于哪一类型。(针对解决回归问   题,可以采用单棵树输出结果总和的平均值)

 


     建立决策树模型有两种方法,一种是根据其原理自己造轮子,另外一种是直接调用 klearn

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值