我正在使用credit.csv构建学习树,数据可在以下位置找到:
https://github.com/stedy/Machine-Learning-with-R-datasets/blob/master/credit.csv
我做了以下步骤:
credit<-read.csv("credit.csv")
set.seed(12345)
credit_rand<-credit[order(runif(1000)),]
credit_train<-credit_rand[1:900,]
credit_test<-credit_rand[901:1000,]
library(C50)
credit_model<-C5.0(credit_train[-21],credit_train$default)
Run Code Online (Sandbox Code Playgroud)
在我关注的指南中,似乎我应该删除最后一列,这是默认值,但我得到以下错误:
Error en C5.0.default(credit_train[, -21], credit_train$default) :
C5.0 models require a factor outcome
Run Code Online (Sandbox Code Playgroud)
我尝试将最后一行更改为:
credit_model<-C5.0(credit_train[,-21],credit_train$default)
Run Code Online (Sandbox Code Playgroud)
但没有成功.
有帮助吗?
你的问题是C5.0 models require a factor outcome.你给出了结果credit_train$default,这是一个1/2的结果,但是R已经把它读作数字,而不是一个因素:
str(credit_train$default)
int [1:900] 2 1 1 1 2 1 2 2 1 1 ...
Run Code Online (Sandbox Code Playgroud)
然后解决方案是将其转换为一个因素:
credit_train$default<-as.factor(credit_train$default)
str(credit_train$default)
Factor w/ 2 levels "1","2": 2 1 1 1 2 1 2 2 1 1 ...
Run Code Online (Sandbox Code Playgroud)
然后运行你的训练:
credit_model<-C5.0(credit_train[-21],credit_train$default)
Run Code Online (Sandbox Code Playgroud)