因爲這篇文章引用的資料暫時還沒閱讀,因此沒有看出這篇文章的高明之處,目前只能把文章的算法簡單介紹一下,文章的精髓和意義等看了其他文章之後再來修改。
需要繼續看的文章:<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>中闡述。