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

决策树的相关概念以及实现(3)

前面的关于决策树文章的相关链接

树剪枝

如前所述,设置约束的技巧是一种贪婪的方法。换句话说,它会立即检查最佳分割,并向前移动,直到达到指定的停止条件之一,例如开车时你有碰到如下情况

有2条车道:

一辆车以80km / h的速度行驶

一辆车以30km / h的速度行驶

在这个瞬间,你是黄色的车,你有两个选择:

1左转,赶快赶上另外两辆车

2继续前进

让我们分析一下这些选择。在之前的选择中,你会立即超车,然后到达卡车后面,开始以30公里/小时的速度行驶,寻找一个向右移动的机会。原来在你身后的所有汽车都在前进。如果您的目标是在接下来的10秒内最大化距离,这将是最佳选择。在后来的选择中,你以相同的速度,跨越卡车,然后取决于前方的情况取而代之。

这正是正常决策树和修剪之间的区别。一个有约束的决策树不会看到前面的卡车,采取一个左边的贪婪的方法。另一方面,如果我们使用修剪,我们实际上看几步,做出选择。

所以我们知道修剪更好。但是如何在决策树中实现呢?这个想法很简单。

我们首先做出决策树的深度。

然后,我们从底部开始,并从顶端开始删除给我们负面回报的叶子。

假设一个分裂给了我们一个说-10(损失10)的收益,然后下一个分裂就得到了20的增益。一个简单的决策树将在步骤1停止,但是在修剪中,我们将看到整体增益是+10,并保持双叶。

请注意,sklearn的决策树分类器目前不支持修剪。像xgboost这样的高级包在他们的实现中采用了树修剪。

2.使用树模型的场景

你可以使用任何算法。 这取决于你正在解决的问题类型。 让我们来看看一些关键因素,它们将帮助您决定使用哪种算法:

2.1如果依赖和自变量之间的关系用线性模型很好地近似,则线性回归将优于基于树的模型。

2.2如果依赖变量和自变量之间存在高度非线性和复杂的关系,则树模型将优于经典的回归方法。

2.3如果你需要建立一个容易向人们解释的模型,决策树模型将总是比线性模型做得更好。 决策树模型比线性回归更容易解释!

3.基于树的建模中的集成方法是什么(ensemble methods)?

“集成”这个词的文学意义是“组合”。集合方法涉及一组预测模型以实现更好的精度和模型稳定性。

一些常用的集成方法包括:Bagging, Boosting and Stacking

3.1.bagging的工作原理

bagging通过将多个分类器的结果建模在相同数据集的不同子样本上来减少我们预测的方差。下图将更清晰:

步骤如下

1创建多个数据集:

1.1采样是在原始数据上进行替换,形成新的数据集。

1.2新的数据集可以包含列的一部分以及行,这些行通常是bagging模型中的超参数,行列分数小于1有助于建立健壮的模型,不太容易过度拟合

2构建多个分类器:

2.1分类器建立在每个数据集上。

2.2通常对每个数据集建模相同的分类器并进行预测。

3组合分类器:

3.1根据手头的问题,所有分类器的预测都使用均值,中值或模式值进行组合。

组合的值通常比单个模型更可靠。

请注意,这里建立的模型数量不是超参数。更多的模型总是更好的,或者可能会给出类似的性能比较低的数字。从理论上可以看出,在一些假设下,组合预测的方差减少到原始方差的1 / n(n:分类器的数量)。

bagging模型有各种实现。随机森林就是其中之一,接下来我们将讨论它。

随机森林被认为是所有数据科学问题的灵丹妙药。有趣的是,当你想不到任何算法(不管情况),使用随机森林!

随机森林是一种多功能的机器学习方法,能够执行回归和分类任务。它还采取降维方法,处理缺失值,异常值和其他数据探索的基本步骤,做得相当好。它是一种集合学习方法,一组弱模式组合形成一个强大的模型。

工作原理:

在随机森林中,我们种植多棵树,而不是CART模型中的一棵树(参见CART和随机森林在这里,part1和part2之间的比较)。为了根据属性对新的对象进行分类,每棵树都给出了一个分类,并且我们说这棵树对那个分类“投票”。森林选择得票最多的分类(在森林中的所有树上),在回归的情况下,取不同树木的产出的平均值。

它以如下方式工作。每株树种植和种植如下:

假设训练集中的案例数为N.然后,这些N个案例的样本是随机抽取的,但是是替换的。这个样本将成为树的训练集。

如果存在M个输入变量,则指定m

每棵树都尽可能地长出来,没有修剪。

通过聚合N棵的预测(即多数分类投票,回归的平均值)来预测新的数据。

随机森林的优点

1这个算法可以解决两类问题,即分类和回归,并且在两个方面都做了相当好的估计。

2处理具有更高维度的大数据集的能力。 它可以处理数以千计的输入变量,并识别最重要的变量,因此被认为是降维方法之一

3它有一个有效的方法来估计缺失的数据,并保持大部分数据丢失时的准确性。

它可以减小不平衡的数据集中的错误。

上述功能可以扩展到无标签数据,导致无监督聚类,数据视图和异常值检测。随机森林涉及用称为自举采样的替代对输入数据进行采样。这里三分之一的数据不用于训练,可用于测试。这些被称为出包样品。估计出这些袋外样品的误差被称为袋外误差。通过出包来研究误差估计,给出了证据表明,如果使用与训练集相同大小的测试集,那么包内估计值就是精确的。因此,使用出包错误估计消除了对预留测试集的需求。

随机森林的缺点

1 它在分类方面确实做得很好,但不如回归问题好,因为它没有给出精确的连续性预测。 在回归的情况下,它不会超出训练数据的范围,并且可能过度拟合特别嘈杂的数据集。

2 随机森林对于统计建模人员来说可以感觉像一个黑匣子方法 - 对于模型的作用你几乎不能控制。 你可以充其量 - 尝试不同的参数和随机种子

例子:随机森林的相关案例

上图是各国的Gini系数(一个经济指标,不同于之前的判别标准的Gini)

从上面可以看出

墨西哥的基尼系数是第二高的,因此在年收入贫富方面的分配非常高。 我们的任务是提出一个准确的预测算法来估计墨西哥每个人的年收入。 收入如下

1. $ 40,000以下

2. $ 40,000 - 150,000

3.超过15万美元

以下是每个人可用的信息:

1.年龄,2.性别,3.最高学历,4.工业,5.地铁/非地铁居住地

我们需要提出一个算法来对具有以下特征的个体进行准确的预测:(本次用随机森林)

年龄:35岁,2 性别:男,3.最高学历:文凭持有人,4.行业:制造业,5.居住地:地铁

有5个cart树

年龄变量

性别变量

教育程度变量

居住环境变量

行业变量

使用这5个CART模型,我们需要提出一组属于每个薪级的可能性。 为了简单起见,我们将在这个案例研究中采用一个概率的概念。 除了简单的意思外,我们也考虑投票方式来提出最终的预测。 为了提出最终预测,我们在每个CART模型中找到以下配置文件:

1.年龄:35岁,2,性别:男,3.最高学历:文凭持有人,4.行业:制造业,5.居住地:地铁

对于这些CART模型中的每一个,以下是工资区间的分布:

最终的概率就是不同CART模型中相同工资区间概率的平均值。 从这个分析中你可以看出,这个人有70%的机会落入第一级(不到40,000美元),而个人落入第二级的机会大概有24%。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券