决策树算法

来源:互联网 发布:计算机中文编程 编辑:程序博客网 时间:2024/05/22 10:54
决策树算法(ID3):  机器学习中决策树是一个预测模型,它表示对象属性和对象值之间的一种映射,树中的每一个节点表示对象属性的判断条件,其分支表示符合节点条件的对象。树的叶子节点表示对象所属的预测结果(代表类或类分布)。
ID3:

信息熵(entropy):信息熵表示的是不确定度。信息的不确定性越大,熵就越大。(均匀分布时,不确定度最大,此时熵就最大)。当选择某个特征对数据集进行分类时,分类后的数据集信息熵会比分类前的小,其差值表示为信息增益。
一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常非常不确定的事情,或者是我们一无所知的事情,需要了解大量信息==>信息量的度量就等于不确定性的多少, 比特(bit)来衡量信息的多少

例: 假设在样本数据集 D 中,混有 m种类别的数据。构建决策树时,根据给定的样本数据集选择某个特征值作为树的节点。在数据集中,可以计算出该数据中的信息熵:

( 其中pi表示第i个类别在整个训练元组中出现的概率,可以用属于此类别元素的数量除以训练元组元素总数量作为估计。熵的实际意义表示是D中元组的类标号所需要的平均信息量。)

对应数据集 D,选择特征 A 作为决策树判断节点时,在特征 A 作用后的信息熵的为 Info(D),计算A对D划分的期望信息 如下:

信息增益表示数据集 D 在特征 A 的作用后,其信息熵减少的值(两者的差值)。公式如下:
举个例子:



 类似,Gain(income) = 0.029, Gain(student) = 0.151, Gain(credit_rating)=0.048。所以,选择age作为第一个根节点

: 1、树以单个节点作为开始(树的根节点)http://blog.csdn.net/yangliuy/article/details/7322015
2、如果样本都属于相同的类,则判定为叶节点,标号区分
3、否则,根据信息增益的基于信息熵的度量中最优的划分成条件属性,对条件属性的每个已知的值,创建一个分枝,并据此划分样本,建立子节点
4、递归形成判定树
5、以下条件,递归截止:节点的所有样本属于同一类;没有剩余属性可以用来进一步划分样本,但集合内的元素不属于同一类别。在这种情况下,由于没有更多信息可以使用了,一般对这些子集行“多数表决”,即使用此子集中出现次数最多的类别作为此节点类别,然后将此节点作为叶子节点;
注意:所有的属性都是分类的,即离散值。连续属性必须离散化。
避免overfitting  :    在实际构造决策树时,通常要进行剪枝,这时为了处理由于数据中的噪声和离群点导致的过分拟合问题。剪枝有两种:
      先剪枝——在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造。
      后剪枝——先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。
决策树的缺点:
处理连续变量不好;
类别较多时,错误增加的比较快;
可规模性一般;
可借鉴http://www.cnblogs.com/biyeymyhjob/archive/2012/07/23/2605208.html
0 0