决策树的局限性
这篇博客主要讨论决策树这种非参数的学习算法的局限性。
我们的第一个例子中,看到鸢尾花数据集的分类结果时,会看到决策边界都是横平竖直的,那么反映在二维图像上决策边界一定是和 x x x 轴或者 y y y 轴平行的。
因为对于决策树来说,每一次都是在某个维度上选某一个阈值进行划分,小于这个阈值进入一颗子树,大于这个阈值进入另一颗子树。所以这个决策边界对于这个二维平面来说,一定就是
x
x
x 等于某一个值或者
y
y
y 等于某一个值这样的函数,这样的函数显然是和坐标轴是平行的。
那么对于这样的决策边界,它一定是有局限性的。我举一个简单的例子,假设对下图中四个点来说,三个蓝色的点为一类,红色的点为另一类。
那么我们使用决策树来进行分类的话,可能分类的结果就是首先进行一个横向的分类,然后数据被分成上下两部分,上部分全是蓝色的点,所以上部分的信息熵和基尼系数都为 0,不用再进行划分了。
下半部分有一个红色点和蓝色点还可以再分,那么很可能就是这个样子:
那么最终我们形成的决策边界如下:
但是这样的一个决策边界有可能并不能真实反映数据的真实情况,毕竟对于这个数据来说有可能真正合理的决策边界是下面这样的一条斜线:
然而,对于决策树来说,永远不会产生这样一种斜线的决策边界。
更严重的是,假设我们的数据集是下面这个样子,依然是有两类。
现在这两类非常好区分。就是中间一条竖线即可。
如果我们的数据还是这样分布,但是它稍微有一些倾斜,可能是下面这样的:
此时,如果我们再使用决策树的话,划分的结果很有可能如下:
很有可能我们用一条斜线就能够很好的区分这两类,所以在上图中的决策边界两端一直延生下去到无穷的地方有可能分类就是错误的,所以这就是决策边界的局限性。
对于决策树还有另外一个局限性,其实个局限性对于大多数非参数学习算法都是成立的,就是对个别的数据特别敏感。下面就通过一个小例子观察一下。
具体代码见 86 决策树的局限性.ipynb