R Weka J48 决策树无法处理数字 class
R Weka J48 Decision Tree Cannot handle numeric class
我在网上找到了这个文档:
https://www.erpublication.org/admin/vol_issue1/upload%20Image/IJETR032129.pdf
它在第 4 页使用 RWeka 包和 R 中的 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!
我不明白错误,首先它是一个绝对的class。其次,在文档的示例中,它完美地同时使用了分类列和数字列。
我怎样才能让它工作?
J48 要求 class 是分类的,或者在 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)
这意味着,您的答案栏必须由字符而不是数值表示。您可以使用此方法更改它:
Wine$X1=factor(Wine$X1,levels = c(1,2,3),labels = c("Uno","Dos","Tres"))
Wine
是我的数据集。 X1
是我的答案栏。 1、2、3是答案。 Uno、Dos、Tres是数值解析后想要的答案
我在网上找到了这个文档: https://www.erpublication.org/admin/vol_issue1/upload%20Image/IJETR032129.pdf
它在第 4 页使用 RWeka 包和 R 中的 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!
我不明白错误,首先它是一个绝对的class。其次,在文档的示例中,它完美地同时使用了分类列和数字列。
我怎样才能让它工作?
J48 要求 class 是分类的,或者在 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)
这意味着,您的答案栏必须由字符而不是数值表示。您可以使用此方法更改它:
Wine$X1=factor(Wine$X1,levels = c(1,2,3),labels = c("Uno","Dos","Tres"))
Wine
是我的数据集。 X1
是我的答案栏。 1、2、3是答案。 Uno、Dos、Tres是数值解析后想要的答案