1.信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度)
1)熵:表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为
, i=1,2,···n
则随机变量X的熵定义为:
熵只依赖于X的分布,而与X的取值无关,所以也可将X的熵记做H(p),即
熵越大,随机变量的不确定性就越大。
2)联合熵:(X,Y)在一起时的不确定性度量
3)条件熵:表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y|X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望
4)信息增益:表示得知特征X的信息而使得类Y的信息的不确定性较少的程度。
特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即
5)基尼不纯度:将来自集合中的某种结果随机应用于集合中某一数据项的预期误差率。
2.决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景
1)ID3算法
ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。具体方法是:从根结点开始。对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子节点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择。
ID3主要应用于分类。
2)C4.5
C4.5决策树的提出完全是为了解决ID3决策树的一个缺点,当一个属性的可取值数目较多时,那么可能在这个属性对应的可取值下的样本只有一个或者是很少个,那么这个时候它的信息增益是非常高的,这个时候纯度很高,ID3决策树会认为这个属性很适合划分,但是较多取值的属性来进行划分带来的问题是它的泛化能力比较弱,不能够对新样本进行有效的预测。而C4.5决策树则不直接使用信息增益来作为划分样本的主要依据,而提出了另外一个概念,增益率。但是同样的这个增益率对可取值数目较少的属性有所偏好,因此C4.5决策树先从候选划分属性中找出信息增益高于平均水平的属性,在从中选择增益率最高的。C4.5也是主要应用于分类。
3)CART分类树
CART分类树采用基尼系数来划分属性。CART为假设决策树为二叉树,内部结点特征取值为”是”和”否”。左分支取值为”是”,有分支取值为”否”。这样的决策树等价于递归地二分每一个特征,将输入空间划分为有限个单元,并在这些单元上预测概率分布,也就是在输入给定的条件下输出条件概率分布。
分类树既可用于回归也可用于分类。
3.回归树原理
回归树总体流程也是类似,区别在于,回归树的每个节点(不一定是叶子节点)都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分枝时穷举每一个feature的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化均方差即(每个人的年龄-预测年龄)^2 的总和 / N。也就是被预测出错的人数越多,错的越离谱,均方差就越大,通过最小化均方差能够找到最可靠的分枝依据。分枝直到每个叶子节点上人的年龄都唯一或者达到预设的终止条件(如叶子个数上限),若最终叶子节点上人的年龄不唯一,则以该节点上所有人的平均年龄做为该叶子节点的预测年龄。
总结:回归树使用最大均方差划分节点;每个节点样本的均值作为测试样本的回归预测值。
4.决策树防止过拟合手段
对存在过拟合问题的决策树,需要对它进行剪枝,以简化学到的决策树。决策树的剪枝,往往从已生成的树上剪枝一些叶结点或叶结点以上的子树,并将其父结点或根结点作为新的叶结点,从而简化生成的决策树。
剪枝类型又分为预剪枝和后剪枝,预剪枝是在决策树生成过程中,对树进行剪枝,提前结束树的分支生长。后剪枝是在决策树生长完成之后,对树进行剪枝,得到简化版的决策树。
5.模型评估
评估分类器性能的方法有自助法,准确度的区间估计法。
6.sklearn参数详解,Python绘制决策树
python绘制决策树,根据机器学习实战的代码试运行成功。