10.gitchat训练营-决策树——既能分类又能回归的模型

1.什么是决策树

        决策树是一种非常基础又常见的机器学习模型。
        一棵决策树(Decision Tree)是一个树结构(可以是二叉树或非二叉树),每个非叶节点对应一个特征,该节点的每个分支代表这个特征的一个取值,而每个叶节点存放一个类别或一个回归函数。
        使用决策树进行决策的过程就是从根节点开始,提取出待分类项中相应的特征,按照其值选择输出分支,依次向下,直到到达叶子节点,将叶子节点存放的类别或者回归函数的运算结果作为输出(决策)结果。

2.构建决策树

        决策树的作用过程是很简单的,那么决策树是如何构造的呢?
        简单讲,有以下几步:
                1.准备若干的训练数据(假设 m 个样本);
                2.标明每个样本预期的类别;
                3.人为选取一些特征(即决策条件);
                4.为每个训练样本对应所有需要的特征生成相应值——数值化特征;
                5.将通过上面的1-4步获得的训练数据输入给训练算法,训练算法通过一定的原则,决定各个特征的重要性程度,然后按照决策重要性从高到底,生成决策树。

3.几种常用算法

        决策树的构造过程是一个迭代的过程。每次迭代中,采用不同特征作为分裂点,来将样本数据划分成不同的类别。被用作分裂点的特征叫做分裂特征
        选择分裂特征的目标,是让各个分裂子集尽可能地“纯”,即尽量让一个分裂子集中的样本都属于同一类别。
        如何使得各个分裂子集“纯”,算法也有多种,这里我们来看几种。

4.ID3 算法

        该算法的核心是:以信息增益为度量,选择分裂后信息增益最大的特征进行分裂
        首先我们要了解一个概念——信息熵。
        假设一个随机变量 x 有 n 种取值,分别为\{x_1,x_1,...,x_n\},每一种取值取到的概率分别是\{p_1,p_2,...,p_n\},那么 x 的信息熵定义为:
Entropy(x) = -\sum_{i=1}^{n}p_i \log_2(p_i)
        熵表示的是信息的混乱程度,信息越混乱,熵值越大。
        设 S 为全部样本的集合,全部的样本一共分为 n 个类,则:
Entropy(S) = -\sum_{i=1}^{n}p_i \log_2(p_i)
        其中,P_i为属于第i个类别的样本,在总样本中出现的概率。
        接下来要了解的概念是信息增益,信息增益的公式为(下式表达的是样本集合 S 基于特征 T 进行分裂后所获取的信息增益):
InformationGain(T)=Entropy(S)−\sum_{value(T)}\frac{|S_v|}{|S|}Entropy(S_v)
        其中:

  • S为全部样本集合,|S|S的样本数;
  • T为样本的一个特征;
  • value(T)是特征T所有取值的集合;
  • vT的一个特征值;
  • SvS中特征T的值为 v 的样本的集合,|Sv|Sv的样本数。
    ID3的缺点:ID3一般会优先选择取值种类较多的特征作为分裂特征;ID3不能处理取值在连续区间的特征。

5.C4.5

        C4.5 选用信息增益率(Gain Ratio)——用比例而不是单纯的量——作为选择分支的标准。
        信息增益率通过引入一个被称作分裂信息(Split Information)的项,来惩罚取值可能性较多的特征。
SplitInformation(T) = -\sum_{value(T)}\frac{|S_v|}{|S|}\log{\frac{|S_v|}{|S|}}
GainRatio(T) = \frac{InformationGain(T)}{SplitInformation(T)}
        C4.5在不能处理取值在连续区间的特征的弥补,具体做法如下:

  • 把需要处理的样本(对应整棵树)或样本子集(对应子树)按照连续变量的大小从小到大进行排序。
  • 假设所有 m 个样本数据在特征上的实际取值一共有 k(k<=m)个,那么总共有 k−1 个可能的候选分割阈值点,每个候选的分割阈值点的值为上述排序后的特征值中两两前后连续元素的中点。根据这 k-1 个分割点把原来连续的一个特征,转化为 k-1 个 Bool 特征。
  • 用信息增益率选择这 k-1 个特征的最佳划分。
            C4.5 有个问题:当某个|Sv|的大小跟|S|$的大小接近的时候:
    SplitInformation(T) → 0, GainRatio(T)→∞

6.CART

        CART 算法的全称是: Classification and Regression Tree 分类和回归树。从这个名字一望可知,它不仅可以用来做分类,还可以用来做回归。
        CART 算法的运行过程和 ID3 及 C4.5 大致相同,不同之处在于:
                1.CART 的特征选取依据不是增益量或者增益率,而是 Gini 系数(Gini Coefficient)。每次选择 Gini 系数最小的特征作为最优切分点。
                2.CART 是一棵严格二叉树。每次分裂只做二分。
        这里面要特别提到概念:Gini 系数(Gini Coefficient)
对于二分类问题,若样本属于第一类的概率是p,则:
Gini(p) = 2p(1-p)
        这时,如果 p = 0.5, 则 Gini 系数为0.5;如果 p = 0.9, 则 Gini 系数为0.18。0.18 < 0.5,根据 CART 的原则,当 p=0.9 时,这个特征更容易被选中作为分裂特征。
        由此可见,对二分类问题中,两种可能性的概率越不平均,则越可能是更佳优越的切分点。
        回归树和分类树的区别在于最终的输出值到底是连续的还是离散的,每个特征——也就是分裂点决策条件——无论特征值本身是连续的还是离散的,都要被当作离散的来处理,而且都是被转化为二分类特征,来进行处理:

  • 如果对应的分裂特征是连续的,处理与 C4.5 算法相似;
  • 如果特征是离散的,而该特征总共有 k 个取值,则将这一个特征转化为 k 个特征,对每一个新特征按照是不是取这个值来分 Yes 和 No。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • 决策树理论在决策树理论中,有这样一句话,“用较少的东西,照样可以做很好的事情。越是小的决策树,越优于大的决策树”。...
    制杖灶灶阅读 5,850评论 0 25
  • 一. 决策树(decision tree):是一种基本的分类与回归方法,此处主要讨论分类的决策树。在分类问题中,表...
    YCzhao阅读 2,134评论 0 2
  • 一、决策树应用体验 分类   从上面可以看出,决策树对分类具有线性回归无可比拟的优势, 如果对未参与训练的数据集是...
    杨强AT南京阅读 1,248评论 1 3
  • 1、模型原理 (一)原理 1、原理:引入信息熵(不确定程度)的概念,通过计算各属性下的信息增益程度(信息增益越大,...
    Python_Franklin阅读 12,350评论 0 17
  • 1 前言 在了解树模型之前,自然想到树模型和线性模型,他们有什么区别呢? 树形模型是一个一个特征进行处理,之前线性...
    高永峰_GYF阅读 1,391评论 0 1