ID3算法 改进的C4.5算法 决策树算法

来源:互联网 发布:宋仲基宋慧乔婚礼知乎 编辑:程序博客网 时间:2024/05/01 17:56

ID3 是建立了概念学习系统(CLS)算法

决策树是对数据进行分类,以此达到预测的目的。该决策树方法先根据训练集数据形成决策树,如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到训练集数据中,重复该过程一直到形成正确的决策集。决策树代表着决策集的树形结构。
决策树由决策结点、分支和叶子组成。决策树中最上面的结点为根结点,每个分支是一个新的决策结点,或者是树的叶子。每个决策结点代表一个问题或决策,通常对应于待分类对象的属性。每一个叶子结点代表一种可能的分类结果。沿决策树从上到下遍历的过程中,在每个结点都会遇到一个测试,对每个结点上问题的不同的测试输出导致不同的分支,最后会到达一个叶子结点,这个过程就是利用决策树进行分类的过程,利用若干个变量来判断所属的类别。

决策树算法的优点如下:

1

)分类精度高;

2

)成的模式简单;

3

对噪声数据有很好的健壮性

决策树算法的优点如下:

1

)分类精度高;

2

)成的模式简单;

3

对噪声数据有很好的健壮性

决策树算法的优点如下:

1

)分类精度高;

2

)成的模式简单;

3

对噪声数据有很好的健壮性

决策树算法的优点如下:(1)分类精度高;(2)成的模式简单;(3)对噪声数据有很好的健壮性
ID3算法是由Quinlan首先提出的。该算法是以信息论为基础,以信息熵和信息增益度为衡量标准,从而实现对数据的归纳分类。
以下是一些信息论的基本概念:
定义1:若存在n个相同概率的消息,则每个消息的概率p是1/n,一个消息传递的信息量为-Log2(1/n)
定义2:若有n个消息,其给定概率分布为P=(p1,p2…pn),则由该分布传递的信息量称为P的熵,记为
定义3:若一个记录集合T根据类别属性的值被分成互相独立的类C1C2..Ck,则识别T的一个元素所属哪个类所需要的信息量为Info(T)=I(p),其中P为C1C2…Ck的概率分布,即P=(|C1|/|T|,…..|Ck|/|T|)
定义4:若我们先根据非类别属性X的值将T分成集合T1,T2…Tn,则确定T中一个元素类的信息量可通过确定Ti的加权平均值来得到,即Info(Ti)的加权平均值为:
Info(X, T)=(i=1 to n 求和)((|Ti|/|T|)Info(Ti))
定义5:信息增益度是两个信息量之间的差值,其中一个信息量是需确定T的一个元素的信息量,另一个信息量是在已得到的属性X的值后需确定的T一个元素的信息量,信息增益度公式为:
Gain(X, T)=Info(T)-Info(X, T)
ID3算法计算每个属性的信息增益,并选取具有最高增益的属性作为给定集合的测试属性。对被选取的测试属性创建一个节点,并以该节点的属性标记,对该属性的每个值创建一个分支据此划分样本.

最早的决策时算法是由

Hunt

等人于

1966

年提出的

CLS

。当前最有影

响的决策树算法是

Quinlan

1986

年提出的

ID3

1993

年提出的

C4.5

ID3

只能处理离散型描述属性,它选择信息增益最大的属性划分训练样本,

其目的是进行分枝时系统的熵最小,从而提高算法的运算速度和精确度。

ID3

算法的主要缺陷是,用信息增益作为选择分枝属性的标准时,偏向于取

值较多的属性,而在某些情况下,这类属性可能不会提供太多有价值的信

息。

C4.5

ID3

算法的改进算法,不仅可以处理离散型描述属性,还能处

理连续性描述属性。

C4.5

采用了信息增益比作为选择分枝属性的标准,弥

补了

ID3

算法的不足。

最早的决策时算法是由

Hunt

等人于

1966

年提出的

CLS

。当前最有影

响的决策树算法是

Quinlan

1986

年提出的

ID3

1993

年提出的

C4.5

ID3

只能处理离散型描述属性,它选择信息增益最大的属性划分训练样本,

其目的是进行分枝时系统的熵最小,从而提高算法的运算速度和精确度。

ID3

算法的主要缺陷是,用信息增益作为选择分枝属性的标准时,偏向于取

值较多的属性,而在某些情况下,这类属性可能不会提供太多有价值的信

息。

C4.5

ID3

算法的改进算法,不仅可以处理离散型描述属性,还能处

理连续性描述属性。

C4.5

采用了信息增益比作为选择分枝属性的标准,弥

补了

ID3

算法的不足。

最早的决策时算法是由Hunt等人于1966年提出的CLS。当前最有影响的决策树算法是Quinlan于1986年提出的ID3和1993年提出的C4.5。
ID3只能处理离散型描述属性,它选择信息增益最大的属性划分训练样本,其目的是进行分枝时系统的熵最小,从而提高算法的运算速度和精确度。
数据描述
所使用的样本数据有一定的要求,ID3是:
描述-属性-值相同的属性必须描述每个例子和有固定数量的价值观。
预定义类-实例的属性必须已经定义的,也就是说,他们不是学习的ID3。
离散类-类必须是尖锐的鲜明。连续类分解成模糊范畴(如金属被“努力,很困难的,灵活的,温柔的,很软”都是不可信的。
足够的例子——因为归纳概括用于(即不可查明)必须选择足够多的测试用例来区分有效模式并消除特殊巧合因素的影响。


ID3算法的主要缺陷是,用信息增益作为选择分枝属性的标准时,偏向于取值较多的属性,而在某些情况下,这类属性可能不会提供太多有价值的信息。
基本算法: 
1.选择一个属性放置在根节点,为每个可能的属性值产生一个分支 
2.将样本划分成多个子集,一个子集对应于一个分支 
3.在每个分支上递归地重复这个过程,仅使用真正到达这个分支的样本
 4.如果在一个节点上的所有样本拥有相同的类别,即停止该部分树的扩展 
构造决策树(集合划分)时选择属性:     .ID3: Information Gain         .C4.5: Gain Ratio               .CART: Gini Index 
属性选择
ID3决定哪些属性如何是最好的。一个统计特性,被称为信息增益,使用熵得到给定属性衡量培训例子带入目标类分开。信息增益最高的信息(信息是最有益的分类)被选择。为了明确增益,我们首先从信息论借用一个定义,叫做熵。每个属性都有一个熵。

  ID3算法思想: 
(1) 初始化决策树T为只含一个树根(X,Q),其中X是全体样本集,Q为全体属性集。
 (2) if(T中所有叶节点(X’,Q’)都满足X属于同一类或Q’为空)then 算法停止;
 (3) else     {任取一个不具有(2)中所述状态的叶节点(X’,Q’);
 (4) for each Q’中的属性A do 计算信息增益gain(A,X’); 
(5)     选择具有最高信息增益的属性B作为节点(X’,Q’)的测试属性;
 (6) for each B的取值bi do 
        {从该节点(X’, Q’)伸出分支,代表测试输出B=bi; 
        求得X中B值等于bi的子集Xi,并生成相应的叶节点(Xi’,Q’-{B});} 
(7) 转(2);}
 ID3算法的问题: 
    (1)信息增益的计算依赖于特征数目较多的特征,而属性取值最多的属性并不一定最优。  
   (2)ID3是非递增算法。 
    (3)ID3是单变量决策树(在分枝节点上只考虑单个属性),许多复杂概念的表达困难,属性相互关系强调不够,容易导致决策树中子树的重复或有些属性在决策树的某一路径上被检验多次


一个nonincremental ID3算法,推导其阶级意义从一组固定的训练资料中。一个增量算法修改当前的概念界定,如果有必要,与一种新的样品。这个班由ID3是感应,那是,给定一小组训练资料中,特定的课程由ID3预计未来所有的情况下工作。未知的分布必须相同的测试用例。感应类无法证明工作在每种情况下,因为他们可以无限的情况下进行分类。注意,ID3(或任何可能misclassify归纳算法)数据。


    C4.5既可以处理离散型描述属性,也可以处理连续性描述属性。C4.5采用了信息增益比作为选择分枝属性的标准,弥补了ID3算法的不足。在选择某节点上的分枝属性时,对于离散型描述属性,C4.5的处理方法与ID3相同,按照该属性本身的取值个数进行计算;对于某个连续性描述属性Ac,假设在某个结点上的数据集的样本数量为total,C4.5将作以下处理。

  将该结点上的所有数据样本按照连续型描述属性的具体数值,由小到大进行排序,得到属性值的取值序列{A1c,A2c,……Atotalc}。 
 在取值序列中生成total-1个分割点。第i(0<i<total)个分割点的取值设置为Vi=(Aic+A(i+1)c)/2,它可以将该节点上的数据集划分为两个子集。 
 从total-1个分割点中选择最佳分割点。对于每一个分割点划分数据集的方式,C4.5计算它的信息增益比,并且从中选择信息增益比最大的分割点来划分数据集。

 (3)采用了一种后剪枝方法    避免树的高度无节制的增长,避免过度拟合数据, 该方法使用训练样本集本身来估计剪枝前后的误差,从而决定是否真正剪枝。

4)对于缺失值的处理 
在某些情况下,可供使用的数据可能缺少某些属性的值。假如〈x,c(x)〉是样本集S中的一个训练实例,但是其属性A的值A(x)未知。处理缺少属性值的一种策略是赋给它结点n所对应的训练实例中该属性的最常见值;另外一种更复杂的策略是为A的每个可能值赋予一个概率。例如,给定一个布尔属性A,如果结点n包含6个已知A=1和4个A=0的实例,那么A(x)=1的概率是0.6,而A(x)=0的概率是0.4。于是,实例x的60%被分配到A=1的分支,40%被分配到另一个分支。这些片断样例(fractional examples)的目的是计算信息增益,另外,如果有第二个缺少值的属性必须被测试,这些样例可以在后继的树分支中被进一步细分。

C4.5就是使用这种方法处理缺少的属性值。 

C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 
    1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 
    2) 在树构造过程中进行剪枝;   

  3) 能够完成对连续属性的离散化处理;   

  4) 能够对不完整数据进行处理。 

  C4.5算法的优缺点 
优点:产生的分类规则易于理解,准确率较高。 

缺点:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行

0 0
原创粉丝点击