【问题标题】:How to let J48 fit data如何让J48拟合数据
【发布时间】:2013-11-23 20:36:01
【问题描述】:

我有一个关于 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 -> target3 或 Attr2 = 2 -> target1?

【问题讨论】:

    标签: r data-mining weka decision-tree


    【解决方案1】:

    我已经稍微简化了您的代码并确定了问题所在。 最小叶子数的选项设置为“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
    

    【讨论】:

    • 这是ineedmorecoffee 问题之一。谢谢你启发我。
    • 嘿,我被难住了一段时间!发现很有趣。
    猜你喜欢
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多