概述
一、前言
我们今天来讲一讲决策树的第一课:简单的决策树
我们的背景是这样的:
你准备去一家餐厅吃饭,但是餐厅已经满了,你想要知道应不应该等待餐厅出现空位。
表格如下:
ALT:这附近还有合适的餐厅吗
BAR:有等待区可以等候吗
FRI:是否是周五
PATRONS:有多少人正在吃饭
PRICE:价格是否昂贵
RES:是否有预约?
TYPE:什么菜系
EST:预计的等待时间
WILLWAIT:是否要等待
二、简单的决策树
那我们就要分析,这些属性是否与结果有着关系?
我们最朴素的想法,就是画个树状图来还原我们做决策的过程
我们的过程可能是这样的:
他的伪代码可能是:
很简单对吧。
但是你有没有发现一个问题,那就是:这样的决策树,他的运算复杂度是指数级的,因为你可能有不同的决策顺序,选择属性的可能顺序数已经是指数级的了。同时找出最小的决策树还是一个NP-Hard的问题(我们后面几个课会说什么事NP难问题)。
那怎么办呢?
三、假设空间
学习可以定义为:对所有观测数据搜索最佳假设。
那么对于决策树来说,假设空间是一个数据集所能生成的所有可能的决策树。
而学习的任务是:搜索整个空间,并返回最佳假设。但是,在一个小空间里,可以检验所有的假设。如果这个可能的决策树很多呢?
四、你是如何评估学习的?
我们每个人都在学习,那么大家是如何评估学习质量的好坏呢?最直观的方式就是考试,最简单的方式就是使用考试分数。那么分数就是一个评估学习好坏的重要手段。那我们能不能也给决策树一个分数呢?
首先我们要制定打分的规则,这很重要。
我们如何找到最好的“规则”(特征、阈值和叶标签)?
- 为规则定义一个“分数”
- 搜索与最好的分数规则
最直观的评分:分类准确率
当然只有分数还不够,我们都是贪婪的,都想拿到最好的分数。那对于机器学习也是这样,我们不防使用贪婪算法。
五、贪婪的递归分割
我们现在有这样的数据集:我们想找到过敏原是什么:
我们首先通过观察,找到最佳准确率的牛奶分类如下:
然后我们生成第一组树:
之后我们继续细分:
直到:
- 不能进一步分裂一个叶节点,例如,只有一个例子在叶节点
- 叶子只有一个标签。
- 用户自定义最大深度
这三者是“或”的关系,当然也可以组合评判。
六、问题所在
请注意,高的准确率就一定是好的模型么?
先留下思考。下一节继续说。
最后
以上就是等待电话为你收集整理的【机器学习、深度学习与强化学习】机器学习(2)---决策树(1)一、前言二、简单的决策树三、假设空间四、你是如何评估学习的?五、贪婪的递归分割六、问题所在的全部内容,希望文章能够帮你解决【机器学习、深度学习与强化学习】机器学习(2)---决策树(1)一、前言二、简单的决策树三、假设空间四、你是如何评估学习的?五、贪婪的递归分割六、问题所在所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复