树模型是机器学习中非常常用的一种算法,既可以处理分类问题,也可以处理回归问题,更多的时候是用来处理分类问题的,下面就主要介绍有关于决策树的一些内容.
定义: 是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树。
决策树的优点:
(1)具有可读性,如果给定一个模型,那么过呢据所产生的决策树很容易推理出相应的逻辑表达。
(2)分类速度快,能在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
决策树的缺点:
(1)对未知的测试数据未必有好的分类、泛化能力,即可能发生过拟合现象,此时可采用剪枝或随机森林。
熵(entropy)是随机变量不确定性的度量,也就是熵越大,则随机变量的不确定性越大。设X是一个取有限个值得离散随机变量,则随机变量X的熵定义为:
设有随机变量(X, Y),条件熵H(Y|X)表示在已知随机变量X的条件下,随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y|X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望:
当熵和条件熵中的概率由数据估计得到时(如极大似然估计),所对应的熵与条件熵分别称为经验熵和经验条件熵。
总结:熵与条件熵的最大区别是变量的不同,条件熵的变量是两个,而熵的变量是一个
定义:信息增益表示由于得知特征a的信息后儿时的数据集D的分类不确定性减少的程度,后面部分越小,减小的程度越小,增益越大,定义为:
选择划分后信息增益大的作为划分特征,说明使用该特征后划分得到的子集纯度越高,即不确定性越小。因此我们总是选择当前使得信息增益最大的特征来划分数据集。
缺点:信息增益偏向取值较多的特征(原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分后的熵更低,即不确定性更低,因此信息增益更大)
总结:
条件熵是表示在直到某一条件后,某一随机变量的复杂性或不确定性.
信息增益是表示在知道某一条件后,某一随机变量的不确定性的减少量.
信息增益的提高会导致条件熵的减小
算法过程:
1).初始化信息增益的阀值
2).判断样本是否为同一类输出Di,如过是则返回单节点树T.标记类别为Di
3).判断特征是否为空,如果是则返回单节点树T,标记类别为样本中输出类别D实例数最多的类别
4).计算A中的各个特征(共n个)对输出D的信息增益,选择好信息增益最大的特征Ag
5).如果Ag的信息增益小于阀值,则返回单节点树T,标记类别为样本中输出类别D实例数最多的类别
6).否则,按特征Ag的不同取值Agi将对应的样本输出D分成不同的类别Di.每个类别产生一个子节点.对应特征值为Agi
7).对于所有的子节点,令D=Di,A=A-{Ag}递归调用2-6步,得到子树Ti并返回
算法的缺点:
1).ID3没有考虑连续特征,比如长度,密度都是连续值,无法在ID3运用.
2).ID3采用信息增益大的特征优先建立决策树的节点.在相同的调价下,取值比较多的特征比取值少的信息增益大
3)ID3算法对于缺失值情况没有做考虑
4)没有考虑到过拟合的问题
总结:ID3的算法主要运用了信息增益的来构建决策树,在尽可能增大各个特征的信息增益来减少熵,最后选取到想要的值,不过这种方法很容易产生过拟合.
通过多方阅读,查阅资料,决策树的损失函数通常是正则化的极大似然函数这个说法是最多也是最广的,公式为:
其中设T的叶节点个数为|T|, t是树T的叶节点,该叶节点有Nt个样本点,其中 k 类的样本点有Ntk个,k=1,2,…,K,
Ht(T)为该叶节点的信息熵,α>= 0为参数