首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C5.0模型需要一个因子结果

C5.0模型需要一个因子结果
EN

Stack Overflow用户
提问于 2015-06-24 22:38:20
回答 2查看 18.8K关注 0票数 9

我正在使用credit.csv构建学习树,数据可在以下位置获得:

https://github.com/stedy/Machine-Learning-with-R-datasets/blob/master/credit.csv

我做了以下几个步骤:

代码语言:javascript
复制
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)

在我遵循的指南中,似乎我应该去掉最后一列,它是默认值,但我得到了以下错误:

代码语言:javascript
复制
Error en C5.0.default(credit_train[, -21], credit_train$default) : 
  C5.0 models require a factor outcome

我已经尝试将最后一行更改为:

代码语言:javascript
复制
credit_model<-C5.0(credit_train[,-21],credit_train$default)

但根本没有成功。

有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-24 22:46:58

你的问题是C5.0 models require a factor outcome。您给出的结果是credit_train$default,这是1/2的结果,但R将其读取为数字,而不是因子:

代码语言:javascript
复制
str(credit_train$default)
int [1:900] 2 1 1 1 2 1 2 2 1 1 ...

然后,解决方案是将其转换为一个因子:

代码语言:javascript
复制
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 ...

然后运行您的训练:

代码语言:javascript
复制
 credit_model<-C5.0(credit_train[-21],credit_train$default)
票数 11
EN

Stack Overflow用户

发布于 2015-06-24 22:49:12

在原始数据provided by the publisher中,类变量(默认)存储在第17列,而不是第21列。除非在过去几个月中发生了重大更改,否则您的文件很可能不是正确的文件。

在我的文件中,类变量"default“是一个具有两个级别("yes”和"no")的因子,它应该是这样的。

根据这本书,相应地,应该执行的命令是

代码语言:javascript
复制
credit_model <- C5.0(credit_train[-17], credit_train$default)

紧接着是

代码语言:javascript
复制
credit_pred <- predict(credit_model, credit_test)

然后它就像一个护身符一样起作用。

代码语言:javascript
复制
# > CrossTable(credit_test$default, credit_pred,
# +            prop.chisq = FALSE, prop.c = FALSE, prop.r = FALSE,
# +            dnn = c('actual default', 'predicted default'))
#
#
#   Cell Contents
# |-------------------------|
# |                       N |
# |         N / Table Total |
# |-------------------------|
#
# 
# Total Observations in Table:  100 
#
# 
#               | predicted default 
#actual default |        no |       yes | Row Total | 
#---------------|-----------|-----------|-----------|
#            no |        57 |        11 |        68 | 
#               |     0.570 |     0.110 |           | 
#---------------|-----------|-----------|-----------|
#           yes |        16 |        16 |        32 | 
#               |     0.160 |     0.160 |           | 
#---------------|-----------|-----------|-----------|
#  Column Total |        73 |        27 |       100 | 
#---------------|-----------|-----------|-----------|
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31029592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档