决策树 随机森林 adaboost

? 熵、互信息
? 决策树学习算法
  ? 信息增益
  ? ID3、C4.5、CART
? Bagging与随机森林
? 提升
  ? Adaboost/GDBT

? 熵、互信息

  熵是对平均不确定性的度量。

  平均互信息:得知特征Y的信息而使得对标签X的信息的不确定性减少的程度。描述随机变量之间的相似程度。(条件熵、相对熵:差异性)

? 决策树  

  决策树学习采用的是自顶向下的递归方法,有监督学习。

  其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类。
  

  建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有一下三种算法。
  ? ID3   信息增益:g(D,A) = H(D) - H(D|A)  特征A对训练数据集D的信息增益,选择互信息最大的特征为当前的分类特征。
  ? C4.5      信息增益率:gr(D,A) = g(D,A)/H(A)    增加惩罚,泛化能力

  ? CART

    分类回归树算法:CART(Classification And Regression Tree)算法采用一种二分递归分割的技术,将当前的样本集分为两个子样本集,

      使得生成的的每个非叶子节点都有两个分支。因此,CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,

      它在每一步的决策时只能是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分

    分类树两个基本思想:第一个是将训练样本进行递归地划分特征空间进行建树的想法,第二个想法是用验证数据进行剪枝

    CART算法的原理:

       上面说到了CART算法分为两个过程,其中第一个过程进行递归建立二叉树,那么它是如何进行划分的 ?

      设代表单个样本的个属性,表示所属类别。CART算法通过递归的方式将维的空间划分为不重叠的矩形。

       划分步骤大致如下:

          (1)选一个自变量,再选取的一个值维空间划分为两部分,一部分的所有点都满足

           另一部分的所有点都满足,对非连续变量来说属性值的取值只有两个,即等于该值或不等于该值。

         (2)递归处理,将上面得到的两部分按步骤(1)重新选取一个属性继续划分,直到把整个维空间都划分完。

      对于连续变量属性来说,它的划分点是一对连续变量属性值的中点。假设个样本的集合一个属性有个连续的值,

       那么则会有个分裂点,每个分裂点为相邻两个连续值的均值每个属性的划分按照能减少的杂质的量来进行排序

       而杂质的减少量定义为划分前的杂质减去划分后的每个节点的杂质量划分所占比率之和。

       而杂质度量方法常用Gini指标,假设一个样本共有类,那么一个节点的Gini不纯度可定义为

 

                    

      其中表示属于类的概率,当Gini(A)=0时,所有样本属于同类,所有类在节点中以等概率出现时,Gini(A) 最大化,此时

          Gini系数:  

              在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。

              分类度量时,总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似)。

              当一个节点中所有样本都是一个类时,基尼不纯度为零。

              一个节点A的GINI不纯度定义为:

             其中,Pk表示观测点中属于k类的概率,当Gini(A)=0时所有样本属于同一类,当所有类在节点中以相同的概率出现时,

              Gini(A)最大化,此时值为(C-1)C/2。

              (基尼不纯度为这个样本被选中的概率乘以它被分错的概率。假设y的可能取值为{1, 2, ..., m},令fi是样本被赋予i的概率,

                则基尼指数可以通过如下计算:)(Gini系数与熵之间的关系: lnx = 1 - x 近似)

                  

            对于分类回归树,A如果它不满足“T都属于同一类别or T中只剩下一个样本”,则此节点为非叶节点

            所以尝试根据样本的每一个属性及可能的属性值,对样本的进行二元划分,假设分类后A分为B和C,

            其中B占A中样本的比例为p,则C为q(显然p+q=1)。

            则杂质改变量:Gini(A) -p*Gini(B)-q*Gini(C),每次划分该值应为非负,只有这样划分才有意义,

            对每个属性值尝试划分的目的就是找到杂质改变量最大的一个划分,该属性值划分子树即为最优分支

            (即选择Gini不纯度最小的特征做为划分

      建树完成后就进行第二步了,即根据验证数据进行剪枝。在CART树的建树过程中,可能存在Overfitting,许多分支中反映的是数据中的异常,

    这样的决策树对分类的准确性不高,那么需要检测并减去这些不可靠的分支。决策树常用的剪枝有事前剪枝和事后剪枝,CART算法采用事后剪枝

    具体方法为代价复杂性剪枝法

    参考博文:http://blog.csdn.net/acdreamers/article/details/44664481

         http://www.dataguru.cn/article-4720-1.html

时间: 2024-10-20 02:56:01

决策树 随机森林 adaboost的相关文章

集成学习 - 决策树-随机森林

认识 我觉得决策树+ 随机森林 应该是 ML 中最为重要的算法之一了吧, 反正我是很喜欢用的. 算法难度低, 可解释性很强, 能可视化 能处理非线性, 可扩展为随机森林(集成学习) 建立决策树的判别依据有很多, 比较主流的有经典的 ID3 算法(熵), C4.5 , 基尼系数等. 我是这种基于熵的理解了, 上学时学过熵的概念, 在<> 和 <> 有讲到. 其余的也没仔细看, 暂时能深入理解一个就可以了. 信息熵 衡量信息的不确定性 或 混乱程度的指标 不确定性越大, 则熵值越大 直

机器学习之路:python 综合分类器 随机森林分类 梯度提升决策树分类 泰坦尼克号幸存者

python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/linyi0604/MachineLearning 1 import pandas as pd 2 from sklearn.cross_validation import train_test_split 3 from sklearn.feature_extraction import DictVe

人工智能_5_决策树_随机森林

# 决策树,随机森林 # 决策树结构:if-then # 信息熵: # 例:第一届世界杯32支球队 每个队伍冠军概率1/32 # 可得 log32(程序员认为的log一般都默认是以2为底) = -(1/32*log(1/32)+1/32*log(1/32).....) # 2018 第21届世界杯根据历史数据获胜概率不同 log32 > -(1/4*log(1/4)+1/4*log(1/4).....) # 几个log的和即为信息熵, 当概率变化时 log的和是小于log(n)的 # 信息熵与不

随机森林算法基础梳理

1.集成学习概念 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好).集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来. 集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging).偏差(boosting)或改进预测(st

机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。

决策树decision tree 什么是决策树输入:学习集输出:分类觃则(决策树) 决策树算法概述 70年代后期至80年代初期,Quinlan开发了ID3算法(迭代的二分器)Quinlan改迚了ID3算法,称为C4.5算法1984年,多位统计学家在著名的<Classification and regression tree>书里提出了CART算法ID3和CART几乎同期出现,引起了研究决策树算法的旋风,至今已经有多种算法被提出 算法的核心问题 该按什么样的次序来选择变量(属性)?最佳分离点(连

paper 56 :机器学习中的算法:决策树模型组合之随机森林(Random Forest)

周五的组会如约而至,讨论了一个比较感兴趣的话题,就是使用SVM和随机森林来训练图像,这样的目的就是 在图像特征之间建立内在的联系,这个model的训练,着实需要好好的研究一下,下面是我们需要准备的入门资料: [关于决策树的基础知识参考:http://blog.csdn.net/holybin/article/details/22914417] 在机器学习中,随机森林由许多的决策树组成,因为这些决策树的形成采用了随机的方法,所以叫做随机森林.随机森林中的决策树之间是没有关联的,当测试数据进入随机森

R语言︱决策树族——随机森林算法

笔者寄语:有一篇<有监督学习选择深度学习还是随机森林或支持向量机?>(作者Bio:SebastianRaschka)中提到,在日常机器学习工作或学习中,当我们遇到有监督学习相关问题时,不妨考虑下先用简单的假设空间(简单模型集合),例如线性模型逻辑回归.若效果不好,也即并没达到你的预期或评判效果基准时,再进行下换其他更复杂模型来实验. ---------------------------------------------- 一.随机森林理论介绍 1.1 优缺点 优点. (1)不必担心过度拟合

决策树模型组合之(在线)随机森林与GBDT

前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时, 单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的. 模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,这些算法最终的结果是生成N(可能会有几百棵以上)棵树,这样可以大 大的减少单决策树带来的毛病,有点类似于三个臭皮匠等于一个诸葛亮的做法,虽然这几

机器学习实战之 第七章 集成方法(随机森林和 AdaBoost)

第7章 集成方法 ensemble method 集成方法: ensemble method(元算法: meta algorithm) 概述 概念:是对其他算法进行组合的一种形式. 通俗来说: 当做重要决定时,大家可能都会考虑吸取多个专家而不只是一个人的意见. 机器学习处理问题时又何尝不是如此? 这就是集成方法背后的思想. 集成方法: 投票选举(bagging: 自举汇聚法 bootstrap aggregating): 是基于数据随机重抽样分类器构造的方法 再学习(boosting): 是基于