机器学习(8)决策树

来源:互联网 发布:二次元人物制作软件 编辑:程序博客网 时间:2024/05/22 01:33

决策树生成是一个递归过程,是一种简单高效并且具有强解释性的模型,广泛应用于数据分析领域。其本质是一颗由多个判断节点组成的“树”。

有一堆水果,其中有香蕉,苹果,杏这三类,现在要对它们分类,可以选择的特征有两个:形状和大小,其中形状的取值有个:圆形和不规则形,大小的取值有:相对大和相对小。现在要对其做分类,我们可以这样做:

首先根据特征:形状,如果不是圆形,那么一定是香蕉,这个就是叶子节点;

如果是圆形,

再进一步根据大小这个特征判断,如果是相对大的,则是苹果,如果否,则是杏子,至此我们又得到两个叶子节点,并且到此分类位置,都得到了正确划分三种水果的方法。

这就是一个决策分类,构建树的一个过程,说成是树,显得有点高大上,再仔细想想就是一些列 if 和 else 的嵌套,说是树只不过是逻辑上的一种神似罢了。

刚才举的这个例子,有两个特征:形状和大小,并且选择了第一个特征:形状作为第一个分裂点,大小作为第二个分裂点,那么不能选择第二个特征作为第一分裂点吗? 这样选择有没有公式依据呢?

先提一个概念:信息熵。是度量样本集合纯度最常用的一种指标。其实就是纯度的意思....当zy要分类的种类越多纯度越低,分类的种类越小纯度越高,纯度越高则越容易划分属性。

信息熵公式:

p是当前样本结合D中第i类样本所占的比例。

以下是一个判断是否去相亲的例子:

假如我是红娘,我手头上有20个boy,其中符合该相亲条件的有9个,不符合该相亲条件的有11个,那么正例为9/20,反例为11/20.

由信息熵公式求出信息熵为:

求和符号上面的那个2,是因为只有两个分类结果

现在介绍信息增益公式:

这里只展示一个类别,所以看不出其他属性的信息增益的大小,当计算出Gain()后,值最大的那个属性被划分出来。

决策树的基本公式就上面的两个,还有其他的加强算法这里就不讲了。以后遇到问题再写吧。

决策树学习方法检测速度很快,但容易过度拟合,于是有剪枝的方法。

剪枝分为预剪枝和后剪枝。预剪枝是指再决策树生成过程中,对每个结点再划分前先进行估计,若当前划分不能带来泛化性能提高,则停止划分并将当前结点作为叶结点;后剪枝则先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换成叶结点能带来泛化性能提高,则将该子树替换成叶结点。

这里的算法只是粗略带过,需要尽快进入强化学习的副本

日常深推公众号: