feilong 发表于 2018-1-5 08:51:14

Spark 高级分析:第四章第4节

本帖最后由 feilong 于 2018-1-5 08:57 编辑

问题导读

1.决策树可以处理何种类型的问题?
2.什么是决策树?什么是随机决策森林?
3.通过示例是否可以理解决策树?

http://www.aboutyun.com/static/image/hrline/4.gif


上一篇:Spark 高级分析:第四章第1,2,3节
http://www.aboutyun.com/forum.php?mod=viewthread&tid=23697&page=1#pid248235

结果表明,被称为决策树的算法家族可以自然地处理分类和数字特征。它们可以容易地并行构建。它们对数据中的异常值具有鲁棒性,这意味着一些极端和可能错误的数据点可能根本不影响树。它们可以在不需要进行预处理或标准化的情况下,消耗不同类型和不同尺度的数据,这一问题将在下一章中重现。
决策树归纳为一种更强大的算法,称为随机决策森林。他们的灵活性使得这些算法值得在本章中进行研究,在这个章节中,Spark MLlib的决策树和随机森林实现将应用于一个数据集。
基于决策树的算法具有相对直观、理解和推理的优势。事实上,在日常生活中,我们都可能使用与决策树中同样的推理。例如,我坐下来喝加奶咖啡。在我把牛奶加到我的咖啡之前,我想要预测:牛奶会变质吗?我不确定。我可以检查一下是否已经过期了。如果没有,我预测不会,它没有被破坏。如果日期已经超过3天了,我预计会被破坏。否则,我就会闻到牛奶的气味。如果闻起来很怪,我预测是,否则不会。图4-1 决策树:是否过期了?
这一系列的yes / no规则导致了预测,正是决策树所体现的。每个决策都导致两个结果中的一个,要么是一个预测,要么是另一个决策,如图4 - 1所示。从这个意义上讲,将决策过程考虑为决策树是很自然的,树中的每个内部节点都是一个决策,每个叶节点都是最终的答案。
上面的规则是我在多年的单身生活中学会的直觉——它们看起来像规则,既简单又有效地区分了变质的和未变质的牛奶。这些也是好的决策树的属性。
这是一个过于简单的决策树,并不是用任何严格性构建的。再举一个例子。一个机器人在一家奇异的宠物店找到了一份工作。在商店开门之前,它想要学习,商店里的动物会成为孩子的好宠物。主人列出了9只不知是否适合作为宠物的动物。这个机器人收集了表格4 - 1中所发现的动物的信息:
表4 - 1 奇异宠物店“特征向量”
虽然名称是给定的,但它不会被包含为一个特性。几乎没有理由相信这个名字是可以预测的;可以给一只猫取名为“菲力克斯”,或者是一只有毒的狼蛛,因为所有的机器人都知道。所以,有两个数字特征(重量,腿数)和一个分类(颜色)预测一个明确的目标(对一个孩子来说是 /不是一个好宠物)。
机器人可能会尝试根据一个简单的决策树来开始训练数据,其包括一个基于重量的单一决策,如图4 - 2所示:图4-2 机器人的第一个决策树
决策树的逻辑很容易读出来,并且有一定的意义:500公斤的宠物一定听起来不适合作为宠物。这条规则预测了9个案例中5个的正确值。快速浏览一下建议,可以通过将体重阈值降低到100kg来提高规则。9个例子中有6个是正确的。现在预测的重动物预测的是正确的;较轻的动物只有一部分是正确的。
因此,可以通过构建第二个决策来进一步细化小于100kg的例子的预测。选择一个能将一些不正确的“是”预测变成“否”的功能是件好事。例如,有一种小的绿色动物,听起来可能像一条蛇,可以通过决定颜色来正确预测,如图4 - 3所示:图4-3 机器人的第二个决策树
9个例子中的7个是正确的。当然,可以在所有9个都正确预测之前添加决策规则。在结果决策树中体现的逻辑在翻译成普通的语言时可能听起来不太可信:“如果动物的体重小于100kg,而它的颜色是棕色而不是绿色,它的腿只有不到10条,那么它就是一个合适的宠物。”虽然这是一个完美的例子,但是像这样的决策树不能预测一个(小的,棕色的,四条腿的)狼獾不是合适的宠物。需要一些平衡来避免这种现象,即过度拟合。
这已经足够介绍决策树了,以便开始用Spark探索它们。本章的其余部分将探讨如何选择决策规则,如何知道何时停止,以及如何通过创建整个森林来获得精确。

a530491093 发表于 2019-1-17 10:27:27

来过了!
页: [1]
查看完整版本: Spark 高级分析:第四章第4节