摘要:本文主要向大家介绍了机器学习入门之关于机器学习中决策树的相关问题也谈随机森林,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之关于机器学习中决策树的相关问题也谈随机森林,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
决策树可能是对于相关样本进行分类示性最为直观的一种方法,使用决策树方法来演示分类的过程对于读者而言可能也是最简单的一种方式,我们可以称之为它是白箱算法,所谓白箱就是直接可以对其进行观察、可以进行可视化;那么如何衡量哪一种决策树的形态是较好的分类方式,也就是说对于高维样本,如何来确定使用各个维度的划分顺序(即树上判别条件的先后关系)而更快地得到分类的结果就成为了研究的目标,当然如果样本仅有一个维度我们就没有必要进行研究了。
流行的决策树算法主要包括以下这三种:ID3算法、C4.5算法以及CART算法,在一般讨论决策树算法的文章或者教课书中也是主要围绕这三种算法进行的;另外,本文还会讨论一下可能天然就与决策树算法相关的内容(这里使用了“可能”,也就是说森林中的树其实不一定非要是一般意义上的决策树,只不过使用决策树更为常用罢了)——随机森林,至于为什么要使用随机森林以及随机森林可能带来的好处,我们将在描述随机森林的时候予以简单讨论;当然本文并不是主要着力在决策树以及随机森林的算法编写本身,甚至可能不太会涉及决策树的相关剪枝问题,笔者觉得那可能不是什么主要内容,我们将聚焦于决策树本身可能传达出的一些信息以及可能在分类问题中使用的一些比较常用的度量指标——熵(Entropy)。
熵本身承载了事物的信息量,恰恰是对这个指标的变化转换,使我们对于一些问题的本质产生了更为深刻的认识,而且熵这个东西还会在今后的相关机器学习的内容中出现,比如评价神经网络学习误差的指标——交叉熵(Cross Entropy)。
一些符号和基础
按照惯例我们在讨论本文主题——决策树之前,还是先给出文中可能用到的一些符号或公式等,以免在今后的问题描述中产生不一致或混乱。与之前的讨论不同,以下不仅会涉及到样本的维度,而且还会讲到不同维度的取值(这些取值可能是离散的,也可能是连续的,但都不影响问题的描述,而且对于连续的值域实际上可以采用一些方法将其离散化,但这个不是本文的讨论范畴)。
对于样本集合,我们还是使用X来表示,而单个样本则使用xk来表示,这些与以前的文章并无二致,而我们使用xkr来表明样本的第r的特征(即第r个维度,假定共有p个维度,在这里关于维度和特征的用词我们不再纠结,就当成一样的就好了)的属性值或特征值。
按笔者的理解,那我们对于如何构建一个决策树其实就是一个不断寻找最佳的属性特征顺序组合的过程,这其实是一个穷举的流程,比如我们在审核一个人能否办理信用卡(或者授信额度高低)的时候,这个人可能我们会从年龄、学历、婚否、工作状况、有无房产等不同的维度来考察,但是哪个维度或者说是特征应该放在决策树的顶部、而那个又应该放在下面直至底部呢?这个对于特征的排列在数学上也被称作置换;另外,本文使用τij表示对于集合(1,2,...p)的一个置换(p是维度的上限)(τij(1),τij(2),..., τij(p)),这里的i表示第i类,而j表示这个i类中的第j个条件(显然条件之间是互斥的;而且在一个类中,划分的条件也就是特征的值组合是不一样的、存在多个),那么对于类别i而言,其满足的第j个条件就可以抽象地写作:
实际上rij就是条件的长度,而就是第τij(1)特征的某个固定特征值。一般而言,在对相关事物进行分类的时候,我们肯定希望使用的条件越少越好,反映在公式1中就是rij越小越好,那么条件也就越短,即针对优化下式:
那怎样才能使上式越小呢?这里先引出之前提到过的一个重要的概念——熵,人们使用它来进行相关评判。
如果样本可以被分为c类,而这些类别的样本占总体样本的比例乘以其对数,再乘以负一,则就是某类别的熵,样本总体的熵就是所有类的熵之和:
这个公式和式3没有任何区别(不过本文还是以公式3为主),都是使用样本概率来计算熵。如前所述,熵就是表示事物承载信息量多少的指标,而熵值越高则约不稳定,越低则越趋向稳定;试想如果我们研究的对象只包含一个类别,则熵值必然为0,这就从另外一个方面说明了这个问题。
另外,还有一个比较重要的概念就是,在某个特征(特征还是使用τ)下计算的熵值,公式如下:
应该如何理解公式5?其中v表示特征τ取值的情况,它一共有个不同的值(当然不同特征取值的个数是完全不同的,比如性别特征只有2个,即男和女,而学历可能有十几个,包括如文盲、小学、初中等),那么上式所表达的根本含义就是特征进行分裂(取不同的值)时的熵值,而良好的决策树算法任务就是优先找到分裂时熵值更大的特征,从而使整体判定的性能更为优良。
至此笔者已经给出相关算法的一般表达基础公式和符号解释,下面就几个主流的决策树算法进行简单的讨论并给出适当的样例。
基于信息增益的ID3算法
ID3算法是一个比较基础的决策树算法,在一般场合下它的效果还是不错的,其根本原理就是根据每次选取的特征分裂的熵值变化来选择某次到底应该使用还未被选择的特征,简而言之,就是计算下式:
以下笔者还是通过之前用到的例子(在贝叶斯决策中给出;网上给出的例子绝大多数都是基于天气变化来确定是否出游的,天气包括气候、温度、湿度等特征,决策就是是否出去游玩)来说明决策树的生成过程,现再次给出这个例子:
特征F1的取值范围为{s,o,r}
特征F2的取值范围为{h,m,c}
特征F3的取值范围为{h,n}
特征F4的取值范围为{t,f}
特征F5的取值范围为{d,r}
而每个样本被分为L1和L2两个类别。
现我们有20个样本,其各个特征的取值和分类情况,如下表所示:
序号 | F1 | F2 | F3 | F4 | F5 | 类别 |
1 | s | h | h | f | d | L2 |
2 | s | h | h | t | d | L2 |
3 | o | h | h | f | d | L1 |
4 | r | m | h | f | d | L1 |
5 | r | c | n | f | d | L1 |
6 | r | c | n | t | d | L2 |
7 | o | c | n | t | d | L1 |
8 | s | m | h | f | d | L2 |
9 | s | c | n | f | d | L1 |
10 | r | m | n | f | d | L1 |
11 | s | m | n | t | r | L1 |
12 | o | m | h | t | r | L1 |
13 | o | h | n | f | r | L1 |
14 | r | m | h | t | r | L2 |
15 | r | m | n | f | r | L1 |
16 | s | m | n | t | r | L1 |
17 | o | m | h | t | r | L1 |
18 | o | h | n | f | r | L1 |
19 | r |
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号