R Weka J48决策树无法处理数字类

时间:2016-01-18 23:09:13

标签: r weka decision-tree

我在网上找到了这个文件: https://www.erpublication.org/admin/vol_issue1/upload%20Image/IJETR032129.pdf

它在第4页上使用在R中构建一个带有RWeka包和J48函数的决策树。在他的例子中,他有数值和分类值。

所以,我做了一个测试,只是在专栏上试图预测另一个。这是一个示例:

VALUE CHURNED_F
    2         1
    2         0
    2         0
    2         0
    2         0
    1         0

这是我的代码:

m2 <- J48(`CHURNED_F` ~ ., data = head(train[, -c(1)]))

但是我收到了这个错误:

Error in .jcall(o, "Ljava/lang/Class;", "getClass") : 
  weka.core.UnsupportedAttributeTypeException: weka.classifiers.trees.j48.C45PruneableClassifierTree: Cannot handle numeric class!

我不明白错误,首先它是一个绝对的类。其次,在文档的示例中,它完美地使用了分类和数字列。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:3)

J48要求该类是分类的,或者在R的情况下,是一个因子。我相信你的“Churned_F”变量是数字。您可以使用结构函数检查变量的类型:

str(train)  

下面的代码允许您构建J48树。在这里,我确保“CHURNED_F”是一个因素。

library(RWeka)
train <- data.frame(VALUE = c(2,2,2,2,2,1), CHURNED_F = factor(c(1,0,0,0,0,0)))
m2 <- J48(CHURNED_F ~., data = train)