Weka的-3.6.10的C4.5与Quinlan教授的C4.5算法的区别
生活随笔
收集整理的這篇文章主要介紹了
Weka的-3.6.10的C4.5与Quinlan教授的C4.5算法的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用數據集:
http://archive.ics.uci.edu/ml/machine-learning-databases/car/
weka-3.6.10的結果是:
Ross Quinlan的C4.5-Release8的代碼是:
http://www.rulequest.com/Personal/c4.5r8.tar.gz
運行結果是:
safety = low: unacc (576.0/1.4) safety = med: | persons = 2: unacc (192.0/1.4) | persons = 4: | | buying = vhigh: | | | maint = vhigh: unacc (12.0/1.3) | | | maint = high: unacc (12.0/1.3) | | | maint = med: | | | | lug_boot = small: unacc (4.0/1.2) | | | | lug_boot = med: unacc (4.0/3.1) | | | | lug_boot = big: acc (4.0/1.2) | | | maint = low: | | | | lug_boot = small: unacc (4.0/1.2) | | | | lug_boot = med: unacc (4.0/3.1) | | | | lug_boot = big: acc (4.0/1.2) | | buying = high: | | | lug_boot = small: unacc (16.0/1.3) | | | lug_boot = med: | | | | doors = 2: unacc (4.0/1.2) | | | | doors = 3: unacc (4.0/1.2) | | | | doors = 4: acc (4.0/2.2) | | | | doors = 5more: acc (4.0/2.2) | | | lug_boot = big: | | | | maint = vhigh: unacc (4.0/1.2) | | | | maint = high: acc (4.0/1.2) | | | | maint = med: acc (4.0/1.2) | | | | maint = low: acc (4.0/1.2) | | buying = med: | | | maint = med: acc (12.0/1.3) | | | maint = vhigh: | | | | lug_boot = small: unacc (4.0/1.2) | | | | lug_boot = med: unacc (4.0/3.1) | | | | lug_boot = big: acc (4.0/1.2) | | | maint = high: | | | | lug_boot = small: unacc (4.0/1.2) | | | | lug_boot = med: unacc (4.0/3.1) | | | | lug_boot = big: acc (4.0/1.2) | | | maint = low: | | | | lug_boot = small: acc (4.0/1.2) | | | | lug_boot = med: acc (4.0/3.1) | | | | lug_boot = big: good (4.0/1.2) | | buying = low: | | | maint = high: acc (12.0/1.3) | | | maint = vhigh: | | | | lug_boot = small: unacc (4.0/1.2) | | | | lug_boot = med: unacc (4.0/3.1) | | | | lug_boot = big: acc (4.0/1.2) | | | maint = med: | | | | lug_boot = small: acc (4.0/1.2) | | | | lug_boot = med: acc (4.0/3.1) | | | | lug_boot = big: good (4.0/1.2) | | | maint = low: | | | | lug_boot = small: acc (4.0/1.2) | | | | lug_boot = med: acc (4.0/3.1) | | | | lug_boot = big: good (4.0/1.2) | persons = more: | | lug_boot = small: | | | buying = vhigh: unacc (16.0/1.3) | | | buying = high: unacc (16.0/1.3) | | | buying = med: | | | | maint = vhigh: unacc (4.0/1.2) | | | | maint = high: unacc (4.0/1.2) | | | | maint = med: acc (4.0/2.2) | | | | maint = low: acc (4.0/2.2) | | | buying = low: | | | | maint = vhigh: unacc (4.0/1.2) | | | | maint = high: acc (4.0/2.2) | | | | maint = med: acc (4.0/2.2) | | | | maint = low: acc (4.0/2.2) | | lug_boot = med: | | | buying = med: acc (16.0/6.9) | | | buying = vhigh: | | | | maint = vhigh: unacc (4.0/1.2) | | | | maint = high: unacc (4.0/1.2) | | | | maint = med: acc (4.0/2.2) | | | | maint = low: acc (4.0/2.2) | | | buying = high: | | | | maint = vhigh: unacc (4.0/1.2) | | | | maint = high: acc (4.0/2.2) | | | | maint = med: acc (4.0/2.2) | | | | maint = low: acc (4.0/2.2) | | | buying = low: | | | | maint = vhigh: acc (4.0/2.2) | | | | maint = high: acc (4.0/1.2) | | | | maint = med: good (4.0/2.2) | | | | maint = low: good (4.0/2.2) | | lug_boot = big: | | | buying = vhigh: | | | | maint = vhigh: unacc (4.0/1.2) | | | | maint = high: unacc (4.0/1.2) | | | | maint = med: acc (4.0/1.2) | | | | maint = low: acc (4.0/1.2) | | | buying = high: | | | | maint = vhigh: unacc (4.0/1.2) | | | | maint = high: acc (4.0/1.2) | | | | maint = med: acc (4.0/1.2) | | | | maint = low: acc (4.0/1.2) | | | buying = med: | | | | maint = vhigh: acc (4.0/1.2) | | | | maint = high: acc (4.0/1.2) | | | | maint = med: acc (4.0/1.2) | | | | maint = low: good (4.0/1.2) | | | buying = low: | | | | maint = vhigh: acc (4.0/1.2) | | | | maint = high: acc (4.0/1.2) | | | | maint = med: good (4.0/1.2) | | | | maint = low: good (4.0/1.2) safety = high: | persons = 2: unacc (192.0/1.4) | persons = 4: | | buying = vhigh: | | | maint = vhigh: unacc (12.0/1.3) | | | maint = high: unacc (12.0/1.3) | | | maint = med: acc (12.0/1.3) | | | maint = low: acc (12.0/1.3) | | buying = high: | | | maint = vhigh: unacc (12.0/1.3) | | | maint = high: acc (12.0/1.3) | | | maint = med: acc (12.0/1.3) | | | maint = low: acc (12.0/1.3) | | buying = med: | | | maint = vhigh: acc (12.0/1.3) | | | maint = high: acc (12.0/1.3) | | | maint = med: | | | | lug_boot = small: acc (4.0/1.2) | | | | lug_boot = med: acc (4.0/3.1) | | | | lug_boot = big: vgood (4.0/1.2) | | | maint = low: | | | | lug_boot = small: good (4.0/1.2) | | | | lug_boot = med: good (4.0/3.1) | | | | lug_boot = big: vgood (4.0/1.2) | | buying = low: | | | maint = vhigh: acc (12.0/1.3) | | | maint = high: | | | | lug_boot = small: acc (4.0/1.2) | | | | lug_boot = med: acc (4.0/3.1) | | | | lug_boot = big: vgood (4.0/1.2) | | | maint = med: | | | | lug_boot = small: good (4.0/1.2) | | | | lug_boot = med: good (4.0/3.1) | | | | lug_boot = big: vgood (4.0/1.2) | | | maint = low: | | | | lug_boot = small: good (4.0/1.2) | | | | lug_boot = med: good (4.0/3.1) | | | | lug_boot = big: vgood (4.0/1.2) | persons = more: | | buying = vhigh: | | | maint = vhigh: unacc (12.0/1.3) | | | maint = high: unacc (12.0/1.3) | | | maint = med: acc (12.0/2.5) | | | maint = low: acc (12.0/2.5) | | buying = high: | | | maint = vhigh: unacc (12.0/1.3) | | | maint = high: acc (12.0/2.5) | | | maint = med: acc (12.0/2.5) | | | maint = low: acc (12.0/2.5) | | buying = med: | | | maint = vhigh: acc (12.0/2.5) | | | maint = high: acc (12.0/2.5) | | | maint = med: | | | | lug_boot = small: acc (4.0/2.2) | | | | lug_boot = med: vgood (4.0/2.2) | | | | lug_boot = big: vgood (4.0/1.2) | | | maint = low: | | | | lug_boot = small: good (4.0/2.2) | | | | lug_boot = med: vgood (4.0/2.2) | | | | lug_boot = big: vgood (4.0/1.2) | | buying = low: | | | maint = vhigh: acc (12.0/2.5) | | | maint = high: | | | | lug_boot = small: acc (4.0/2.2) | | | | lug_boot = med: vgood (4.0/2.2) | | | | lug_boot = big: vgood (4.0/1.2) | | | maint = med: | | | | lug_boot = small: good (4.0/2.2) | | | | lug_boot = med: vgood (4.0/2.2) | | | | lug_boot = big: vgood (4.0/1.2) | | | maint = low: | | | | lug_boot = small: good (4.0/2.2) | | | | lug_boot = med: vgood (4.0/2.2) | | | | lug_boot = big: vgood (4.0/1.2)比較兩者的不同,可以看到weka沒有采用Quinlan的書《C4.5:programs for machine learning》對unKnown數據的處理方式。
另外我們也可以得知,雖然《C4.5:programs for machine learning》提到的剪枝方式是EBP,但是代碼中其實使用的是PERP,weka使用的也是PERP(Pessimistirc Error Pruning)
注意,如果使用http://www.rulequest.com/Personal/c4.5r8.tar.gz中自帶的hypo數據集,那么weka就能看出比Quinlan實現的差一些。
因為Quinlan實現的版本生成的決策樹更加簡化,更加適合提取知識。
總結
以上是生活随笔為你收集整理的Weka的-3.6.10的C4.5与Quinlan教授的C4.5算法的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《C4.5: Programs for
- 下一篇: Earliest PEP Algorit