标签:决定 出现 因此 mit 扫描 解决 一个 art 函数
决策树的学习通常包含三个步骤:特征选择、树的生成、树的剪枝。决策树的生成采用启发式的方法,只考虑局部最优,相对地,决策树的剪枝则考虑全局最优
随机变量\(X\)的熵定义为:
\[H(X)=-\sum \limits_{i}p_i\log p_i\]
熵越大,不确定性越大。从定义可验证
\[0 \leq H(X) \leq \log n\]
条件熵\(H(Y|X)\)定义为给定\(X\)时\(Y\)的条件概率分布的熵对\(X\)的数学期望:
\[H(Y|X)=\sum \limits_{i=1}^n p(X=x_i) H(Y|X=x_i)=-\sum \limits_{i=1}^n\sum \limits_{j=1}^m p(X=x_i) p(Y=y_j)\log p(Y=y_j)\]
特征\(A\)对数据集\(D\)的信息增益:
\[g(D,A)=H(D)-H(D|A)\]
一般地,熵\(H(Y)\)与条件熵\(H(Y|X)\)之差称为互信息。决策树学习中的信息增益等价于训练数据集中类与特征的互信息
以信息增益划分特征,容易偏向于选择取值较多的特征(如DNA),信息增益比定义为:
\[g_R(D,A)=\frac{g(D,A)}{H_A(D)}\]
其中,\(H_A(D)=-\sum_{i=1}^n \dfrac{|D_i|}{|D|}\log_2\dfrac{|D_i|}{|D|}\),\(n\)是特征\(A\)取值的个数。(可以看成特征\(A\)的熵)
在决策树各个节点上应用信息增益准则选择特征,递归地构建决策树。
具体做法:从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同取值建立子节点(所以只能处理离散值);再对子节点递归调用上述方法。直到所有特征的信息增益均很小或没有特征可以选择为止。
ID3相当于用极大似然法进行概率模型的选择。但是该算法只有树的生成,所以该算法生成的树容易造成过拟合。
C4.5算法与ID3算法类似,只是在生成过程中用信息增益比来选择特征。
决策树对训练数据的分类很准确,但容易造成过拟合。原因在于学习时过多地考虑如何提高对训练数据的正确分类,从而构建出过于复杂的决策树。解决办法就是对树进行剪枝。
决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现。设树\(T\)的叶节点个数为\(|T|\),\(t\)是树\(T\)的叶节点,该叶节点有\(N_t\)个样本点,其中\(k\)类的样本点有\(N_{tk}\)个,\(H_t(T)\)为叶节点\(t\)上的经验熵,\(\alpha \geq 0\)为参数,则决策树的损失函数可以定义为:
\[C_{\alpha}(T)=\sum \limits_{t=1}^{|T|}N_tH_t(T)+\alpha|T|\]
其中,叶节点的经验熵为
\[H_t(T)=-\sum_k \dfrac{N_{tk}}{N_t}\log \dfrac{N_{tk}}{N_t}\]
在损失函数中,第一项表示模型对训练数据的预测误差,\(|T|\)表示模型的复杂度,\(\alpha \geq 0\)控制两者之间的影响
CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”。这样的决策树等价于递归地二分每个特征
算法由两步组成:
选择最优切分变量\(j\)(特征)与切分点\(s\)(特征的取值),求解
\[R_1(j,s)=\{x|x^{(j)}\leq s\} \quad R_2(j,s)=\{x|x^{(j)}> s\}\]
\[\min \limits_{j,s}\left[ \min \limits_{c_1} \sum \limits_{x_i \in R_1(j,s)}(y_i-c_1)^2+\min \limits_{c_2} \sum \limits_{x_i \in R_2(j,s)}(y_i-c_2)^2 \right]\]
遍历变量\(j\),对固定的切分变量\(j\)扫描切分点\(s\),选择使上式最小的对\((j,s)\)
将输入空间划分为\(M\)个区域\(R_1,R_2,\cdots,R_M\),生成决策树:
\[f(x)=\sum \limits_{m=1}^M \hat{c}_m I(x \in R_m)\]
分类树用基尼指数选择最优特征,同时决定该特征的最优二值切分点
假设有\(K\)个类,样本点属于第\(k\)类的概率为\(p_k\),则概率分布的基尼指数定义为
\[Gini(p)=\sum \limits_{k=1}^Kp_k(1-p_k)=1-\sum \limits_{k=1}^Kp_k^2\]
对于给定样本集合\(D\),\(C_k\)是\(D\)中属于第\(k\)类的样本子集,其基尼指数为
\[Gini(D)=1-\sum \limits_{k=1}^K(\frac{|C_k|}{|D|})^2\]
如果样本集合\(D\)根据特征\(A\)是否取某一可能值\(a\)被分割为\(D_1\)和\(D_2\)两部分,即
\[D_1=\{(x,y)\in D|A(x)=a\}, \quad D_2=D-D_1\]
则在特征\(A\)的条件下,集合\(D\)的基尼指数定义如下:
\[Gini(D,A)=\frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2)\]
生成分类树时,在所有可能的特征\(A\)以及它们所有可能的切分点\(a\)中,选择基尼指数最小的特征及其对应的切分点作为最优特征与最优切分点,然后生成两个子节点。
算法如下:
标签:决定 出现 因此 mit 扫描 解决 一个 art 函数
原文地址:https://www.cnblogs.com/weilonghu/p/11922329.html