决策树

说到决策树, 有几种类型

分类树: 一种简单的分类算法,预测结果为离散的类型数据

回归树:结果为数值类型

CART(Classification And Regression Tree):以上二者的结合


一般来说分类树的特点:

PROS: 计算复杂度比较低, 对中间值缺失的容忍度较高,对预测值的类型没有要求

CONS: 在生成决策树的时候需要考虑停止条件以防止overfitting,而这个决定通常没有一个准确的标准


生成决策树的一般算法:

1. 选择某一个特征, 根据此特征的可能值划分现有的数据集,每一个数据集就是当前节点的一个子节点

2. 对每一个子节点递归执行第一步,达到下列条件之一时作为停止条件

   2.1  当前子节点所有数据集的类型一致(已经没有划分的必要)

   2.2  当前子节点已经没有可划分的特征, 当2.2满足但2.1不满足时,通常使用投票来确定当前子节点所代表的类型


在步骤一中 “选择某一个特征” 是决策树的关键算法之一, ID3算法是广泛应用于这个方面的一个算法。

这里有两个很重要的东西,

1. 熵(entropy), 这个东西的定义很模糊, 基本可以理解为这些数据所包含的信息量或者是混杂程度。

2. 信息增益(information gain), 可以理解为两个熵的差值。


参考百度百科,熵的算法如下

其中 x 代表这一坨数据中可能的分类,而P(x)就是选择这个分类的概率。因为P(x) 是一个0~1的数,

所以可以画出  - P(x)log(P(x)) 在0~1上的图像如下:


在这个算法下, 每当需要决定一个特征来划分现有的节点时, 我们尝试用每个节点划分,并计算:

信息增益 = 当前父节点的熵 - ∑子节点的熵*选择这个子节点的概率

最后选择信息增益最大的那个特征来进行划分。


通过考虑极端情况下算法的选择来确定这么做的意义, 如果当前节点一共只有两个可能的分类,并且某一个特征恰巧将这两个类分开,那么可以计算分开后的熵为0, 因为熵是一个非负数所以用这个特征进行分类一定可以取得最大的信息增益,这个结果也符合常识上的考虑。


你可能感兴趣的:(决策树,分类算法)