统计学习方法之决策树

1.前言

           你要是愿意流浪,我陪你到海角天边;你如果想要安顿,我便日出日落柴米油盐;你是我想捧在手心里,一直都看不够的小紫罗兰。我觉得我已经幸福的过了头,当你在我的梦中出现的时候;前一生我不小心用石头砸到了你的头,所以这一辈子你就像石头一样敲碎我的心。但是守候一颗石头的快乐,却使我笑成了个*;此段纯属废话 ,不用理会;

2.决策树

         决策树的思想是使用树的形式来还原特征和分类之间的关系,树根和树杈表示的是特征,树叶表示的是分类;当我们生成了这棵树,每一组新的特征便可以沿着树找到自己对应的分类;达到最终实现分类的目的;下图是为我从别处盗过来的一张图,描述了拥有房产、是否结婚、月输入几个维度对于贷款偿还能力的影响;

统计学习方法之决策树

         统计学习方法之决策树

              我们考虑如何根据第一幅图中的数据生成下面这么一棵树,整体流程就是不断找用来分类的特征,生成子节点,直到结束;先解释一些名词图中第一个圆圈是整棵树开始的节点叫做根节点,后面的圆圈都叫做内部节点,方框的节点是用来分类的叫做叶子节点;

              随便的画一棵树太简单了,但这那样的树用来分类效果往往会很差。究其原因有两点,一根节点的选择不科学,二没有确定什么时候结束,如果用完所有的特征往往容易导致过拟合;接下来解决这两个问题;

              1.如何选择分类特征

              我们先定一下分类特征选择的原则,既然是分类那么原则就是分类后每个类别中数据的一致性;如何来衡量这种一致性呢?我们引入了几个的概念;

               1)熵:熵可以用来衡量一组信息的混乱程度,也就是该信息所携带的信息量;信息量越大则该条信息越混乱;举个例子,第一条信息是:马云家里面已经穷的揭不开锅了;第二条是马云在杭州繁华市区买了一套房子;很明显第一条信息的信息量更大,是不是因为他对钱不感兴趣,把钱都丢了?是不是因为他遇到诈骗团伙了?阿里巴巴出什么事了?可以看出越是不可思议的事情所携带的信息量就越大,而这个信息量也可以表示出该条信息背后的潜台词(据科学家说整个宇宙都再做一种熵增运动,所以宇宙运行的方向是混乱,现在明白为什么懒惰很舒服,而勤奋却很痛苦了吧,因为懒惰是熵增而勤奋是熵减,勤奋就是在逆天行道;古代人讲究自然无为,也许他们老子已经领悟了熵增之道吧!当然熵增在不同时代表现是不一样的,通过 判断熵增的方向,就可以知道人心的方向,从而判断出世界运行的方向。)对不起,扯远了!

          信息熵的公式是这样的:简单表达就是:- 概率*log概率,因为概率*log概率为负的所以前面要加-号变为正

                统计学习方法之决策树

              2)条件熵:条件熵可以用来衡量按照某个类别分类后的混乱程度,简单解释就是,按照特征x分类后y的熵的数学期望(期望简单来说就是从中随便取一个数可能是多少,离散型的期望就是加权平均,连续型的期望就是积分);计算过程就是,按照x条件将原始数据分类,对每一类求熵,然后把所有的熵乘以其对应的概率加和;

                    统计学习方法之决策树

             3)信息增益:原始的熵是H(X),按照某个特征分类之后的熵变成了H(Y|X),那么用H(X)-H(Y|X)就是要求的信息增益,即分类后信息的混乱程度下降了多少;

                     统计学习方法之决策树

            4)其实我们取信息增益最大的特征作为分类的特征就可以了,这种方式成为ID3

            5)信息增益比  但是上面基于信息增益的特征选择有一个问题就是,如果基于某个特征正好可以原来数据分为很多类,每一类的条件熵都为0的话,整体的信息增益就非常大,但明显看出来这样分类的效果并不好;

              为了解决这个问题,我们引入了信息增益比,即用信息增益/特征分类后数据的熵 得到最后的特征选择。如果按照某个特征分为将原来数据分为很多类,那么分类后数据的熵就会偏大,被选中的可能性就会降低;这种方法称为C4.5   公式如下:

                   统计学习方法之决策树

             2.构建树的过程

                下图是我从网上盗的一张图,描述了构建树的过程。说白了就是按照id3或者c4.5不断寻找能分类的特征,对数据集进行划分,生成子节点,如果节点信息增益小于阈值或者类别一致就停止,置为叶子节点;叶子节点的属性由其最大数量的实例决定;这种使用阈值剪枝的过程叫做预剪枝。

                统计学习方法之决策树

            3.树剪枝

                   上面的使用阈值限定树的深度的方法称为预剪枝,还有一种方法是对树进行后剪枝。剪枝的主要原则是,由下到上将一个分类节点变为叶子节点,该分类节点原来的子节点就会被剪掉。判断损失函数是不是会下降,如果下降了则将其剪掉。

                  损失函数如下:解释为 损失=所有叶子节点的熵+惩罚项α*叶子节点数量;所有叶子节点熵衡量了模型拟合的好坏,惩罚项和叶子节点数量是为了防止过拟合。更少更好是我们追求的目标。

                         统计学习方法之决策树

 

3.总结

       决策树就是以熵减为原则,构建一棵用于分类的树。树的构建过程就是不断寻找可分类的特征,生成子节点,直到满足类别一致或者熵低于阈值而结束,判定为叶子节点,叶子节点的属性由其中最大数量的实例属性决定。有两种防止过拟合的方法,一种是使用阈值预剪枝,一种是使用带有惩罚项的损失函数进行后剪枝。之后还有用于二分类的CART算法,其实就是使用二分类交叉熵代替了传统的熵,在此不做详细的解释。各位看官,咋们曲终、人散。

    开个脑洞,刚才看到一个视频说人类世界可能是被某种外在生命模拟出来的,我在想,其它的一切模拟从可行性的角度来讲都没有什么问题。只是意识这个东西是如何模拟的呢?也就是说如何让游戏人物真正的觉得烦躁不安,但是让游戏人物真正的觉得烦躁不安又有什么实际的意义呢?合理的解释是,游戏人物的得失一定对应着一个现实中人物的喜怒哀乐,我们的意识来自外在世界。反推过去就是,人生的悲欢离合一定对应着某个外在生命的不同体验。如果我们的灵魂就是那个外在生命呢?他在这里穿着一套肉体的装备就是为了得到一种体验,而且这种体验是沉浸式的,在游戏的过程中你完全感觉不到自己是在游戏。而且为了保证游戏的公平性,你也不能去随意改变游戏的规则,只能靠着开发者提供的方法去获得金币。这款游戏刚上市的时候,玩的人比较少。然后越来越火,玩的人也就越来越多,到现在有60多亿人同时在玩。为了防止沉迷,每局不会超过100年。可是为什么要体验这种痛苦、无助、软弱无力呢?可能是我们的那个世界太幸福了;可能是财富分配不公,精英们设计了这款游戏让穷人发泄;又或者这就是一种犯罪的惩罚,我觉得这种是最靠谱的猜想;上帝啊!我绕来绕去还是绕到了你这里。

【高燃现场】中文字幕LiSA—Rising Hope燃爆全场【1080P】