DataMing Papers:<The alternating decision tree learning algorithm>

来源:互联网 发布:中经网产业数据库账号 编辑:程序博客网 时间:2024/05/21 08:35

因为这篇文章引用的资料暂时还没阅读,因此没有看出这篇文章的高明之处,目前只能把文章的算法简单介绍一下,文章的精髓和意义等看了其他文章之后再来修改。

需要继续看的文章:<Improved  boosting algorithms using confidence-rated predicitions> 本文章很多的公式出处来自该文章

    <Learing classicication trees>

   <Classification and Regression Trees>

   <C4.5:Programs for Machine Learning>

Defination of ADTrees:1.A base condition :a boolean predicat e over instances.我的理解:一个判断条件或者一个决策点。

2.A prcondition: conjunction of (neg) base conditions. 我的理解:按照树的结构 就是一个路径所包含的所有的条件的合取。

3.A rule:if(p&&c) print(a);else if(p&&!c) print(b);else if(!c1) print(0).

4.一长串。这里懒得写了。总体来说 3和4规定了树的结构:从一个 PreditionNode 开始,生成若干个SplitNode(或者叫DecitionNode) 每个SplitNode生成两个PredictionNode ,这就是一个rule,循环往复。

ADTrees的定义让我开始看的晕乎(估计是我论文看少的原因>.<),其实用树图思考一下。就是描绘了一个树的结构。。。尤其是第四条定义,其实就是说如果一个rule存在,这个rule的PredicitonNode必须已经存在在树上了。。。。然后把这个rule加到树上面而已。

看完了ADTree的定义,下面看一下算法。

输入:D,训练元组,K,轮数

输出:R={};rule的集合。或者认为就是一个树。

注释:P,the set of predictionNodes。

   C,the set of base conditions。   

a,Z()的计算方法都略,论文里有,至于为什么,要去参考上面列的第一条论文。

方法: <1>k=0; 初始化,P={T},,C={对所有的属性所有值的判断(这是针对nominal的值,对于数值暂时还没有看具体算法)}R={r1} r1:if(T) print a;

     <2>对于任意 p属于P,c属于C,计算 Z(p,c),选取最小值,计算a,b 生成r,

     <3>把 p&&c,p&&!c加入P,r加入R.

     <4>update(D),更新所有实例权值,k++.

    <5>if(k<K) <2>;

 else exit;


该算法在weka有实现,源码的解释在另外一篇<Weka学习 ADTree>中阐述。