使用 RWeka 创建朴素贝叶斯分类器时遇到问题
Trouble creating Naive Bayes classifier using RWeka
我正在尝试通过 RWeka 创建一个 NB 分类器,但它返回了一个变量类型错误。
我有以下变量:
dtm_df.train
作为 data.frame 包含以下
ask check state
1_10 0 1 bad
1_100 1 0 bad
1_11 2 1 good
1_13 0 0 bad
1_14 0 0 good
1_15 0 1 bad
1_16 0 1 good
1_17 0 0 bad
1_19 0 0 bad
1_2 2 0 bad
和 class.formula
作为公式包含:state ~ ask + check
使用时
NB <- make_Weka_classifier("weka/classifiers/bayes/NaiveBayes")
classifier <- NB(class.formula ~ ., dtm_df.train)
它returns:
Error in model.frame.default(formula = class.formula ~ ., data = dtm_df.train) : object is not a matrix
将数据参数 dtm_df.train
转换为矩阵不起作用,因为它需要 data.frame.
尝试时:
classifier <- NB(class.formula ~ ., dtm_df.train)
它returns
Error in .jcall(o, "Ljava/lang/Class;", "getClass") :
weka.core.UnsupportedAttributeTypeException: weka.classifiers.bayes.NaiveBayes: Cannot handle string class!
发现原因其实是train集中state列的格式问题dtm_df.train
.
解决方案是通过以下方式将该列转换为因子:
dtm_df.train$state <- as.factor(dtm_df.train$state)
我正在尝试通过 RWeka 创建一个 NB 分类器,但它返回了一个变量类型错误。
我有以下变量:
dtm_df.train
作为 data.frame 包含以下
ask check state
1_10 0 1 bad
1_100 1 0 bad
1_11 2 1 good
1_13 0 0 bad
1_14 0 0 good
1_15 0 1 bad
1_16 0 1 good
1_17 0 0 bad
1_19 0 0 bad
1_2 2 0 bad
和 class.formula
作为公式包含:state ~ ask + check
使用时
NB <- make_Weka_classifier("weka/classifiers/bayes/NaiveBayes")
classifier <- NB(class.formula ~ ., dtm_df.train)
它returns:
Error in model.frame.default(formula = class.formula ~ ., data = dtm_df.train) : object is not a matrix
将数据参数 dtm_df.train
转换为矩阵不起作用,因为它需要 data.frame.
尝试时:
classifier <- NB(class.formula ~ ., dtm_df.train)
它returns
Error in .jcall(o, "Ljava/lang/Class;", "getClass") :
weka.core.UnsupportedAttributeTypeException: weka.classifiers.bayes.NaiveBayes: Cannot handle string class!
发现原因其实是train集中state列的格式问题dtm_df.train
.
解决方案是通过以下方式将该列转换为因子:
dtm_df.train$state <- as.factor(dtm_df.train$state)