决策树
原理
顾名思义,决策树就是用一棵树来表示我们的整个决策过程。这棵树可以使二叉树(CART只能是二叉树),也可以使多叉树(ID3,C4.5 可以是多叉树或二叉树)
根节点包含整个样本集,每个叶节点都对应一个决策结果(注意,不同的叶节点可能对应同一个决策结果),每一个内部节点都对应一次决策过程或者说是一次属性测试。
从根节点到每个叶子节点的路径对应一个判定测试序列。
决策树的生成就是不断的选择最优的特征对训练集进行划分,是一个递归的过程,递归返回的条件有三种:
1.当前节点包含的样本属于同一类别,无需划分
2.当前属性集为空,或所有样本在属性集上取值相同,无法划分
3.当前节点包含样本集合为空,无法划分
ID3使用信息增益作为选择特征的准则;C4.5使用信息增益比作为选择特征的准则;CART使用Gini指数作为选择特征的准则
ID3
熵表示的是数据中包含的信息量大小。熵越小,数据的纯度越高,也就是说数据越趋于一致,这是我们希望的划分之后每个子节点的样子
信息增益 = 划分前熵 - 划分后熵。信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。也就是说,用属性a来划分训练集,得到的结果中纯度比较高。
ID3仅仅能够处理离散属性。
信息熵:
H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ log 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{k=1}^{K} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
条件熵:
H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ D ∣ H ( D i ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ( − ∑ k = 1 k ∣ D i k ∣ ∣ D