机器学习算法(二)——决策树分类算法及R语言实现方法

来源:互联网 发布:央视 可视化呀数据 编辑:程序博客网 时间:2024/05/21 06:16

决策树算法是分类算法中最常用的算法之一。决策树是一种类似流程图的树形结构,可以处理高维数据,直观易理解,且准确率较高,因此应用广泛。本篇小博就决策树的若干算法:ID3算法、C4.5算法以及分类回归树(CART)、C5.0进行对比介绍,并对比C4.5与C5.0处理较大数据集时的效率,观察C5.0效率提升了多少。

一、概况

算法名称分类属性选取标准标准描述优点缺点ID3信息增益该分类属性带来的熵的变化。。① 只能描述属性为离散型的变量;②偏向具有许多输出的测试,即总是倾向于选择包含多取值的参数,因为参数的取值越多,其分割后的子节点纯度可能越高。采用极限思维,若分类属性为一种唯一标识的属性,每个取值分别对应一种最终分类类型,那么以此属性分类后得到的每个子集都只有一个元组,必然是纯的,这种划分显然是没有意义的。C4.5信息增益率在信息增益的基础上,除以分裂信息熵,即该分类属性下各种取值数量的熵①以信息增益率代替信息增益,准确率提升;②可处理连续变量的分类;③可处理有缺失值的数据;④可以边构造树边剪枝;①对于连续属性最优分割阈值选择比较耗时;②不具备增量式学习能力;③ 在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效CART基尼系数即不纯度抽取规则简便且易于理解;面对存在缺失值、变量数多等问题时非常稳健。偏向于多值属性,并且当类的数量很大时会有困难。C5.0信息增益率在信息增益的基础上,除以分裂信息熵,即该分类属性下各种取值数量的熵适用于处理大数据及,采用boosting方式提高模型准确率,速度比较快,占用内存比较少。。。

二、算法步骤

1、ID3算法

① 计算对D中原组分类所需要的期望信息,即明确要分为几类后,不同类型元组数目的信息熵。

② 计算每个属性的期望信息需求。要加上分类属性A中不同类别的占比作为每一个子数据集Dj熵的比重。

③ 计算信息增益。即按照A属性分类后得到的熵减去1中的熵,选择信息增益最大的作为分裂属性。

④ 若属性A为连续的,则扫描A一次,对于每一个准分裂点,按2进行计算,也是一种离散化处理。

2、C4.5算法

分类属性选取标准改为增益率。

3、CART

分类属性选取标准改为基尼系数。

三、对比C4.5算法以及C5.0算法

1、数据集如下



十折交叉检验实验结果如下:


运行时间对比:


可见C5.0处理较大数据集的速度提升还是很多的。

四、决策树的剪枝

为了防止因噪声或离群点导致的过拟合,决策树要进行剪枝操作,常用的剪枝策略包含先剪枝和后剪枝。

1、先剪枝

通过提前停止树的构建而对树进行剪枝,设定一个合理的阈值,如果通过该属性划分后的元组的某些统计特性(如统计显著性、信息增益以及基尼系数等)低于设定的阈值,则不再进行树的构建。

2、后剪枝

对已完全生长的树进行剪枝,通过删除节点的分支,用叶子节点(即类标号)来代替它完成剪枝。例如CART的代价复杂度剪枝算法,其剪枝的依据为树的代价复杂度,依赖于树的节点个数以及分类错误率,如果剪枝后能够带来更小的代价复杂度,那么就执行剪枝。














0 0
原创粉丝点击