首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

人工智能系列(九)机器学习方法之决策树

原力源微信公众号ID:force-ai

本公众号原创文章未经许可不得转载,转载请后台留言获得转载许可

原力君在前面系列中指出机器学习方法中不管深度学习怎么火爆,它都离不开机器学习的基础学习方法,像线性回归就是深度学习的基础中的基础。今天原力君再跟大家一起聊聊机器学习方法中的另一种基础方法,也就是人们常说的决策树方法。

人类决策过程中的决策树

决策树方法,顾名思义就是要得到一个树状的决策模型。所谓的树状,实际上说的是分叉;而且这里的决策树也不是向上分叉的,反而是根部在最上层,逐渐向下分叉的,是一颗倒立的树。我们用周志华老师在《机器学习》书中使用的例子,在实际生活中我们判断一个瓜是不是好瓜,常用的决策树是下图中所示的样子。

如果你想在生活中判断一个瓜是不是好瓜,那必须有一个前提是你已经吃了很多的瓜,并且对你吃过的瓜中什么样子的瓜是好瓜有一个经验的总结。但是,一个好瓜有很多的特征,你是按照什么顺序去判断是不是好瓜的呢?

有一个最直观的解释,如果你吃的大部分的好瓜纹理都很清晰,那么你肯定首先去判断面前的瓜纹理是不是清晰,如果不清晰那极有可能不是好瓜。但是还有一个问题,好瓜大都纹理清晰,但并不是所有纹理清晰的瓜都是好瓜,你需要继续根据其他特征去判断。假设你面前的瓜纹理清晰,那么你回去想你吃过的纹理清晰的好瓜中,还有什么让你印象深刻的特征?对了,你想起来根蒂蜷缩的纹理清晰的瓜是大都是好瓜。

就这样,你判断一个瓜是不是好瓜的顺序是:

是不是纹理清晰-

根蒂是不是蜷缩等等。

如果你经验丰富,你还可以在加上其他特征去判断你面前的瓜是不是好瓜。

但是,人的思维方式比较奇怪,非常容易先入为主。比如,你就铁了心要纹理清晰的瓜,那么你会把具有其他特征的瓜都归为坏瓜一类去了。但是,还有很多被你埋没了的好瓜,隐藏在芸芸众瓜中。所以,我们需要借助机器学习的方法来更全面的判断一个瓜是不是好瓜。

决策树学习

前面我们讲过了怎么判断一个瓜是好瓜。如果让计算机去学习如何判断好瓜,那么我们需要给它很多的样例。这些样例数据中,有好瓜有坏瓜,每个样例都给出了瓜的纹理、根蒂、色泽、触感、敲声等等特征。有了样例数据,计算机如何得到一个像人类判断过程中的那种顺序判断的思路呢?答案就是决策树。

同人类的判断过程一样,计算机首选选择所有好瓜中占比例最多的那个特征,并且把这个特征作为判断好瓜的第一步。为什么要这样呢?因为这样最省事儿而且能最快速度判断是不是坏瓜,即如果面前的瓜不符合好瓜中比例最高的这个特征,它有极大概率不是好瓜。

这里面隐藏着一个思想:判断好瓜的过程,也是一个剔除坏瓜的过程;如果是坏瓜,那肯定就不是好瓜;也就是说,这种二分类问题的结果是严格对立的。

好了,继续说好瓜的问题。我们看到数据中纹理清晰的瓜占好瓜比例最高,所以把纹理这个属性放在第一位去判断。但是纹理清晰的瓜也有坏瓜,我们需要继续判断纹理清晰的瓜中哪个特征占比例最高,将这个属性排在第二位。纹理模糊的瓜也有好瓜,我们需要按照纹理清晰瓜的思路判断纹理模糊瓜的第二个属性。

这就是决策树学习方法的基本思想,它的目的是得到一个用来做判断的思维导图。给出的决策树结果,可以让你根据判断属性的重要程度依次往下判断目标的分类。决策树学习算法的伪代码如下图所示(参考周志华老师《机器学习》):

决策树学习的关键点

当然,只有前面描述的思路还不足以让你掌握决策树学习方法。这里有几个重要的概念需要理清楚。我们前面提到了用好瓜中占比例最高的那个属性作为首选属性,这个说法还不够严谨。在决策树学习算法中,使用的是一个叫做“信息增益”的东西来判断属性的优先级。另外,计算机利用样例数据学习得到的决策树可能比较细致,有些树枝可能太细致了以至于决策效果不好,因此需要对得到的决策树进行“剪枝处理”。但是,也不是让你随意的去剪枝,你需要保证剪枝之后决策树的“性能”提高。这里用来评估决策树性能的一个指标是“验证集精度”。最具代表性的决策树算法有ID3、C4.5和CART。

一句话总结

生活中人常常用见过最多的特征来对目标进行分类,决策树学习方法也是这个思路;信息增益、剪枝处理、验证集精度是决策树学习的几个关键点;决策树学习的代表性算法有ID3、C4.5和CART。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181025A0WLTX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券