背景音乐:贝加尔湖畔
1. 树模型
判断家里谁会玩游戏先来看个例子:
家里5个人,我们来判断谁会玩游戏:
1)首先,根据年龄进行区分,大于15岁的就是不玩游戏的。
2)然后,根据性别进行区分,男的玩游戏,女的不玩游戏。
我是这么想的:
1)因为年龄大于15岁可以分割开60%的样本,分类的效果最好,所以我先选它作为最重要的特征。
2)然后在小于15岁的样本里,性别可以对剩余样本进行100%的分割,所以它是第二重要的特征。
决策树
很好,在这里,你已经构造出了一棵决策树了。树的叶子就是所有数据的归属,代表不能再分割下去了。树的根节点、中间的节点、树枝就是一些决策依据。我们既可以用决策树做分类也可以做回归。
可以看出:
- 决策树就是从根节点开始一步步走到叶子节点。
- 所有的数据最终都会落到叶子节点。
下课铃声响了,但你眉头一皱,觉得事情并不简单:
因为上面的例子里,先按照性别切分,然后按照年龄进行切分,也是一样的结果!(很聪明嘛小火鸡!)
这里映射出另一个问题——当两棵树的效果相近时,如果选择出相对最好的决策树?
这就是模型评估,我们以后讲。
2. 树的组成
决策树由四个部分组成:
- 根节点:第一个选择点,也就是我们认为能最大分割样本的条件,如:age<15。
- 非叶子节点:不是最终结果,中间条件,代表还需要继续走下去,如:is male?。
- 分支:上述条件的结果,代表了走下去的方向,如 yes or no。
- 叶子节点:分支结束,代表了某个最终的决策结果,如 play or not play。
3. 节点
双11刚过,想象一下你拿到一个快递包裹,你摇了摇感觉里面有两个东西,于是你嘶啦一声,把它拆了,你才发现!大的那个是给小明的,小的那个是给小王的(反正就没有你的)。
刚才的操作就是增加一个节点:
- 原来的大快递包是一个叶子节点,里面包含了某类样本;
- 你按某个依据(如大小)把这类样本分成两个部分;
- 你判断大的那个是属于某个结果的,小的那个时属于小王的;
如下图所示,通过横竖一刀两刀三四刀(增加节点),把样本空间就这么给切割开了!
决策树效果与最大深度的关系
问题:节点越多越好吗?
4. 决策树的训练与测试
训练阶段
把训练集数据丢进去!从根节点开始,不断地循环进行特征选择和特征切分,从而构造出一棵决策树。
测试阶段
把测试集数据丢进去!根据构造出来的树模型从上到下去走一遍!
问题:构造决策树的时候,如何选择特征?选择好后,又如何做特征切分?
5.如何选择特征
一棵树,根部是最强壮的,然后越长枝条越细长。
决策树也一样,选择特征的时候,从根节点开始,每个节点都选择最好的特征,以此类推。
不难发现,构造决策树,用的是贪心算法,即每次都选择最好的情况来切分。
问题:什么才是最好的?
待续
网友评论