决策树理论
决策树理论
在决策树理论中,有这样一句话,“用较少的东西,照样可以做很好的事情。越是小的决策树,越优于大的决策树”。数据分类是一个两阶段过程,包括模型学习阶段(构建分类模型)和分类预测阶段(使用模型预测给定数据的类标号)。决策树分类算法属于监督学习(Supervised learning),即样本数据中有类别标号。下面是两个阶段的简单描述:
- 第一阶段(以分类为例),可以看做是根据样本来学习一个映射或函数
y=f(x)
表达式,能够使用它预测给定元组X的类标号y。 - 第二阶段,使用第一阶段学习得到的模型进行分类。首先评估分类器的预测准确率。这个过程要尽量减少过拟合(为什么是尽量减少?因为过拟合是避免不了的,再好的模型也会有过拟合的情况的)。
决策树学习
决策树学习是根据数据的属性采用树状结构建立的一种决策模型,可以用此模型解决分类和回归问题。常见的算法包括 CART(Classification And Regression Tree), ID3, C4.5等。我们往往根据数据集来构建一棵决策树,他的一个重要任务就是为了数据中所蕴含的知识信息,并提取出一系列的规则,这些规则也就是树结构的创建过程就是机器学习的过程。
决策树的结构
以下面一个简单的用于是否买电脑预测的决策树为例子,树中的内部节点表示某个属性,节点引出的分支表示此属性的所有可能的值,叶子节点表示最终的判断结果也就是类型。
决策树算法
决策树算法主要是指决策树进行创建中进行树分裂(划分数据集)的时候选取最优特征的算法,他的主要目的就是要选取一个特征能够将分开的数据集尽量的规整,也就是尽可能的纯. 最大的原则就是: 将无序的数据变得更加有序
这里总结下三个常用的方法:
- 信息增益(information gain)
- 增益比率(gain ratio)
- 基尼不纯度(Gini impurity)
算法优点
- 算法比较简单;
- 理论易于理解;
- 对噪声数据有很好的健壮性。
目前,决策树是应用最为广泛的归纳推理算法之一,在数据挖掘中受到研究者的广泛关注。衍生出很多出色的集成算法,如random forest、adaboost、gradient tree boosting都是基于决策树的模型。
算法一般流程
收集数据:任意方法和途径。
准备数据:书构造算法只适用于标称型数据,因此数据必须离散化。
分析数据:构造树完成后,检查图形是否符合预测。
训练算法:决策树的数据构造。
测试算法:一般将决策树用于分类,可以用错误率衡量,而错误率使用经验率计算。
使用算法:决策树可以用于任何监督学习算法。
- 使用信息增益作为划分属性
熵被用来衡量一个随机变量出现的期望值。熵越大,一个变量的不确定性就越大(也就是可取的值很多),把它搞清楚所需要的信息量也就越大,熵是整个系统的平均消息量。 信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。
- 使用增益率计算
在决策树中,ID3属性划分标准使用的是信息增益,C4.5使用的是信息增益率。
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
在树构造过程中进行剪枝;
能够完成对连续属性的离散化处理;
能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。另外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。
另外,无论是ID3还是C4.5最好在小数据集上使用,决策树分类一般只试用于小数据。当属性取值很多时最好选择C4.5算法,ID3得出的效果会非常差,因为使用信息增益划分时它倾向于取值多的属性。
- 基尼指数Gini index
基尼指数主要在CART算法中用到,随机森林中用到的属性划分标准也是它。Gini index划分是二元的,它度量的是数据分区或训练元组集D的不纯度,表示的是一个随机选中的样本在子集中被分错的可能性。