决策树系列1:基础概念

背景音乐:贝加尔湖畔

1. 树模型

决策树系列1:基础概念
判断家里谁会玩游戏

先来看个例子:

家里5个人,我们来判断谁会玩游戏:
1)首先,根据年龄进行区分,大于15岁的就是不玩游戏的。
2)然后,根据性别进行区分,男的玩游戏,女的不玩游戏。

我是这么想的:
1)因为年龄大于15岁可以分割开60%的样本,分类的效果最好,所以我先选它作为最重要的特征。
2)然后在小于15岁的样本里,性别可以对剩余样本进行100%的分割,所以它是第二重要的特征。

决策树

很好,在这里,你已经构造出了一棵决策树了。树的叶子就是所有数据的归属,代表不能再分割下去了。树的根节点、中间的节点、树枝就是一些决策依据。我们既可以用决策树做分类也可以做回归

可以看出:

  • 决策树就是从根节点开始一步步走到叶子节点。
  • 所有的数据最终都会落到叶子节点。

下课铃声响了,但你眉头一皱,觉得事情并不简单:
因为上面的例子里,先按照性别切分,然后按照年龄进行切分,也是一样的结果!(很聪明嘛小火鸡!)
这里映射出另一个问题——当两棵树的效果相近时,如果选择出相对最好的决策树?
这就是模型评估,我们以后讲。



2. 树的组成

决策树由四个部分组成:

  1. 根节点:第一个选择点,也就是我们认为能最大分割样本的条件,如:age<15
  2. 非叶子节点:不是最终结果,中间条件,代表还需要继续走下去,如:is male?
  3. 分支:上述条件的结果,代表了走下去的方向,如 yes or no
  4. 叶子节点:分支结束,代表了某个最终的决策结果,如 play or not play

决策树系列1:基础概念
决策树的组成


3. 节点

双11刚过,想象一下你拿到一个快递包裹,你摇了摇感觉里面有两个东西,于是你嘶啦一声,把它拆了,你才发现!大的那个是给小明的,小的那个是给小王的(反正就没有你的)。

刚才的操作就是增加一个节点:

  • 原来的大快递包是一个叶子节点,里面包含了某类样本;
  • 你按某个依据(如大小)把这类样本分成两个部分;
  • 你判断大的那个是属于某个结果的,小的那个时属于小王的;

如下图所示,通过横竖一刀两刀三四刀(增加节点),把样本空间就这么给切割开了!


决策树系列1:基础概念
决策树效果与最大深度的关系

问题:节点越多越好吗?



4. 决策树的训练与测试

训练阶段

把训练集数据丢进去!从根节点开始,不断地循环进行特征选择和特征切分,从而构造出一棵决策树。

测试阶段

把测试集数据丢进去!根据构造出来的树模型从上到下去走一遍!


问题:构造决策树的时候,如何选择特征?选择好后,又如何做特征切分?



5.如何选择特征

一棵树,根部是最强壮的,然后越长枝条越细长。

决策树也一样,选择特征的时候,从根节点开始,每个节点都选择最好的特征,以此类推。

不难发现,构造决策树,用的是贪心算法,即每次都选择最好的情况来切分。


问题:什么才是最好的?



待续