
























决策树既可以计算出结果,还能够清晰地告诉我们得到这个结果的原因。那么在决策中,可以如何应用决策树与随机森林算法?本文对此进行了解析,一起来看看吧。

上篇文章我们介绍了逻辑回归算法,今天我们接着来学习另一个基础的分类和回归方法,决策树。
决策树既可以输出计算结果,还能很清楚的告诉我们为什么会得到这个结果。
如果对一棵决策树的效果不够满意,还可以使用多棵决策树来协同解决问题,这就是随机森林,属于集成学习的一种。
而随机森林这样的集成学习算法,融合了多个模型的优点,所以在遇到分类问题的场景时,决策树和随机森林常被当做机器学习的首选算法。
举个栗子,我们要判断一个物体是否属于鸟类,一般会看它是否会飞、是否有羽毛等条件,如果它既会飞又有羽毛,那么大概率就是鸟类了。
我整理了几条样本数据,如下表所示:

基于表格里的数据,我们可以根据每个条件的结果,画出如下的决策树:

如上图所示,决策树(Decision Tree)就是一种树形结构的算法,每个节点对应了算法的一个特征(是否会飞等),节点上的每一个分支(会飞、不会飞)对应了特征的不同种类,最后绿色的叶子节点对应了最终决策结果(是否鸟类)。
有了这个决策树之后,再有新的数据进来,沿着决策树自上而下的走一圈,就能得到决策结果,而且决策过程清晰明了。
仔细观察上图的决策树,我们可以发现,不同的决策条件会导致其得到的子节点数据是完全不同的,从而得到完全不同的决策树结构,那么我们如何快速找到最优的决策条件,使决策树的效率和准确率更高呢?
这里需要引入信息熵的概念了:信息熵(Entropy)是衡量一个节点内不确定性的度量。
怎么理解呢?我们对刚才的决策树做一些改变,只保留两层节点,去掉“是否有羽毛”条件,如下图所示。那么最终的黄色叶子节点里,就会同时存在是鸟类和不是鸟类的样本数据,这个节点的不确定性就增加了,也就是信息熵变高了。

我们肯定希望决策树每次划分的时候,最终的叶子节点信息熵更低,这样每个叶子节点内的样本纯度也就越高,最终生成的决策树的确定性更强,效率会更高。
在构建决策树的时候,一般通过信息熵来筛选出更重要的特征,并把更重要的特征放到更靠前的节点上去。
生成决策树包括特征选择、决策树生成、决策树剪枝等三个步骤。
在特征选择和决策树生成阶段,最重要的任务就是通过信息熵来筛选出更重要的特征,并把更重要的特征放到更靠前的节点上去。
决策树会评估每一个特征划分后系统的“信息熵指标”,“信息熵指标”最低的特征越靠近根节点,这样一来,决策树的复杂度和计算时间就会减少,模型就会更高效。
不同的决策树算法,所谓的“信息熵指标”也不一样,比如ID3算法使用的是信息增益,C4.5算法使用的是信息增益率,目前使用较多的CART算法使用的是Gini系数,这里不再赘述,感兴趣的话可以自己查一下相关资料。
上图的决策树,根据“信息熵指标”优化后的结果如下:

由于决策树很容易出现过拟合的现象,我们还需要对决策树进行剪枝操作。
剪枝操作可以降低决策树的复杂性,提升模型的泛化能力,基本原理就是判断把某节点去掉之后,模型准确度是否大幅下降,如果没有下降,就可以剪掉这个节点。
比如优化后的决策树,把是否是动物节点去掉后,并不影响模型的准确度,那就可以对其做剪枝处理,从而得到新的决策树。
决策树的可解释性非常高,可以很容易的解释清楚其计算逻辑,所以适合各种需要强解释性的应用场景,比如咨询、金融等领域。
决策树的优点:
决策树的缺点:
单棵决策树容易出现过拟合的情况,并且结果也较不稳定,这时候我们可以使用多棵决策树来共同解决问题,这就是就是随机森林。
随机森林(Random Forest)是一种集成学习方法,通过组合多个决策树来进行分类或回归任务。
每棵决策树都随机抽取不同的样本进行训练,我们会得到三个不同的决策树,再综合考虑三棵树的决策结果,就能得到最终的决策结果了。
由于是根据多个决策树的结果共同决策,所以随机森林具有“起点高、上限低”的特点。
与单棵决策树相比,随机森林具有以下优点:
相应的,随机森林也有以下缺点:
本文我们介绍了决策树和随机森林的原理、应用场景和优缺点,同时决策树也有升级版本,比如XGBoost等,可以自己查一下。
下篇文章,我们来聊一聊支持向量机算法,敬请期待。
本文由 @AI小当家 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。