如何让J48适合数据

时间:2013-11-11 21:45:57

标签: r data-mining weka decision-tree

我对Weka的J48提出了一个小问题。我使用RWeka从R运行此算法。可能是一个简单的解决方案,但我似乎无法在网上找到它。一个很小的例子:

require(RWeka)
Attr1 <- as.factor(c('0302','0302','0320'))
Attr2 <- as.factor(c('2','1','1'))
Target <- as.factor(c('target1','target2','target3'))
input <- data.frame(Attr1,Attr2,Target)
J48( Target ~ Attr1 + Attr2 , data= input, control= Weka_control(W=list(J48,m=1,U=T)))

我希望J48算法的拟合适合数据。这意味着我将叶子中的最小项目放到1,我不修剪树。我得到以下输出:

J48 pruned tree
------------------
: target1 (3.0/2.0)
Number of Leaves  :     1
Size of the tree :  1

为什么不使Attr1 = 0320 - &gt; target3或Attr2 = 2 - &gt;目标1?

1 个答案:

答案 0 :(得分:2)

我稍微简化了您的代码并确定了问题。 最小叶数的选项设置为“M”,而不是“m”。我通过首先查询可能的选项发现了这一点

WOW(J48)  

其相关产出说:

-M <minimum number of instances>
    Set minimum number of instances per leaf.  (default 2)

您的代码的重要部分将变为:


J48( Target ~ Attr1 + Attr2 , data= input, control= Weka_control(M=1,U=TRUE))

J48 unpruned tree
------------------

Attr1 = 0302
|   Attr2 = 1: target2 (1.0)
|   Attr2 = 2: target1 (1.0)
Attr1 = 0320: target3 (1.0)

Number of Leaves  :     3

Size of the tree :  5