目录
决策树模型的核心:
1.由节点与有向边组成
2.节点分为内部节点和叶子节点
3.内部节点表示一个特征,叶子节点表示一个类
每个内部特征表示一个特征属性上的测试,分支代表这个特征属性在某个值域上的输出
决策树的关键步骤是分裂属性,即按照一种特征属性的不同划分(比如阈值),构造不同分支。目标上让各个分裂自己尽可能地“纯”,即属于同一类别。
“纯度”度量指标:信息增益,表示得知a属性的信息使得信息熵(复杂度)减少的程度。
信息熵:\(Entropy(S) \equiv \displaystyle\sum_{i=1}^c -p_i log_2p_i\),
其中,\(S\)为事件的集合,\(p_i\)为事件\(i\)发生的概率,\(c\)为特征总数。熵是以2进制位的个数来度量编码长度的,因此熵的最大值是\(log_2^c\)。
信息增益:\(Gain(S,A) \equiv Entropy(S) - \displaystyle\sum_{v\in Values(A)} \frac{|S_v|}{|S|} Entropy(S_v)\),
其中,\(A\)表示一种属性,\(v\)表示这个属性上的划分值。
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。
“纯度”度量指标:信息增益率。
设样本集\(S\)按离散属性\(F\)的\(c\)个不同取值划分为\(c\)个子集,则它们的信息熵为:
\(SplitInformation(S,A)\equiv -\displaystyle\sum_{i=1}^c \frac{|S_i|}{|S|} log_2\frac{|S_i|}{|S|}\),可以看出这\(c\)个子集的信息熵是定值。
则信息增益率为:\(GainRatio(S,A)\equiv\frac{Gain(S,A)}{SplitInformation(S,A)}\)
但增益率又会对类比数目较小的特征有所偏好(分母小,信息增益率大)。故,C4.5算法先在划分属性中,找出信息增益高于平均水平的那些划分属性作为候选,再从候选中选择增益率最大的.
将连续型的属性变量进行离散化处理,形成决策树的训练集[2]:
处理缺少属性值的一种策略是赋给该节点所有对应训练实例中该属性最常见的值,另一种复杂的情况是为该节点每个可能出现的值赋予一个概率。
“纯度”度量指标:回归方差
\(\sigma=\sqrt{\displaystyle\sum_{i\in I}(x_i-\mu)^2}=\sqrt{\displaystyle\sum_{i\in I}x_i^2-n\mu^2}\)
其中,\(I\)为,\(x_i\),\(\mu\)
回归方差越大,节点数据越分散(不纯)。故选择划分的依据为,最小化:
\(Gain=\displaystyle\sum_{i \in I}\sigma_i\)
“纯度”度量指标:GINI系数
\(GINI=1-\displaystyle\sum_{j\in J}p_j^2\)
其中,\(J\)为类的个数,\(p_j\)为样本属于第\(j\)类的概率,举个栗子,10个样本中有7个样本属于A类,3个样本属于B类,那么
\(GINI=1-(\frac{7}{10})^2-(\frac{3}{10})^2=0.42\)
GINI系数越大,表示节点越不纯。故选择划分的依据为,最小化:
\(Gain=\displaystyle\sum_{i \in I}p_i\cdot GINI_i\)
\(Gain\)应该这么理解,在划分后一共有\(I\)类(二叉树。。其实就两类嘛),总样本中被划分到第\(i\)类的样本共占\(p_i\)(这里是频率而不是概率),这些被划分到第\(i\)类的样本中,GINI值为\(GINI_i\)。所以这个GINI值不是所有样本的GINI值,更像是一个“条件概率”,在给定第\(i\)类样本的条件下,计算样本的纯度。
举个栗子,如图[3]。
由于CART是一棵二叉树,所以对于连续型或离散型的数据,需要进行二值化。
对连续型的处理与C4.5类似,只不过不用信息增益作评价指标,而是GINI值或样本方差。
对离散型的处理,采用one-versus-rest的划分方法,划分为两个类。
处理缺少属性值的一种策略是赋给该节点所有对应训练实例中该属性最常见的值,另一种复杂的情况是为该节点每个可能出现的值赋予一个概率[1]。
输入:训练数据集\(D\),停止计算的条件。
输出:CART决策树。
根据训练数据集,从根结点开始,递归地对每个结点进行以下操作,构建二叉决策树:
算法停止计算的条件:一般是结点中的样本个数小于预定阈值,或样本集的基尼指数小于预定阈值(样本基本属于同一类),或者没有更多特征。
[1] https://www.cnblogs.com/coder2012/p/4508602.html(附代码)
[2] https://blog.csdn.net/u014514939/article/details/79299619
[3] https://www.cnblogs.com/yonghao/p/5135386.html
[4] https://blog.csdn.net/baimafujinji/article/details/53269040
原文:https://www.cnblogs.com/bellz/p/10592606.html