首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中这一行代码中的错误可能是什么?

R中这一行代码中的错误可能是什么?
EN

Stack Overflow用户
提问于 2020-07-08 12:00:02
回答 1查看 273关注 0票数 1
代码语言:javascript
复制
fit <- randomForest(class~. ,data = train_data)

有人能告诉我这行代码有什么问题吗?

这里,train_data是用来预测收入>50k或<50k的训练数据,我在这一行中得到的误差是:

除了警告消息:在randomForest.default(m,y,.)中,y- ymean中的错误:二进制运算符的非数值参数: 响应有五个或更少的唯一值。您确定要进行回归吗? 2:在mean.default(y):参数不是数字或逻辑:返回NA

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-08 12:59:45

似乎您正在尝试对字符因变量进行分类。假设我们使用这个来自kaggle的奇妙的数据集

代码语言:javascript
复制
library(randomForest)
train_data = read.csv("credit_train.csv",stringsAsFactors=FALSE)

str(train_data)
'data.frame':   808 obs. of  17 variables:
 $ Class                         : chr  "Good" "Bad" "Good" "Good" ...
 $ Duration                      : int  6 48 12 36 24 12 30 48 12 24 ...
 $ Amount                        : int  1169 5951 2096 9055 2835 3059 5234 4308 1567 1199 ...
 $ InstallmentRatePercentage     : int  4 2 2 2 3 2 4 3 1 4 ...
 $ ResidenceDuration             : int  4 2 3 4 4 4 2 4 1 4 ...
 $ Age                           : int  67 22 49 35 53 61 28 24 22 60 ...
 $ NumberExistingCredits         : int  2 1 1 1 1 1 2 1 1 2 ...
 $ NumberPeopleMaintenance       : int  1 1 2 2 1 1 1 1 1 1 ...
 $ Telephone                     : int  0 1 1 0 1 1 1 1 0 1 ...
 $ ForeignWorker                 : int  1 1 1 1 1 1 1 1 1 1 ...
 $ CheckingAccountStatus.lt.0    : int  1 0 0 0 0 0 0 1 0 1 ...
 $ CheckingAccountStatus.0.to.200: int  0 1 0 0 0 0 1 0 1 0 ...
 $ CheckingAccountStatus.gt.200  : int  0 0 0 0 0 0 0 0 0 0 ...
 $ CreditHistory.ThisBank.AllPaid: int  0 0 0 0 0 0 0 0 0 0 ...
 $ CreditHistory.PaidDuly        : int  0 1 0 1 1 1 0 1 1 0 ...
 $ CreditHistory.Delay           : int  0 0 0 0 0 0 0 0 0 0 ...
 $ CreditHistory.Critical        : int  1 0 1 0 0 0 1 0 0 1 ...

fit <- randomForest(Class~. ,data = train_data)

Error in y - ymean : non-numeric argument to binary operator
In addition: Warning messages:
1: In randomForest.default(m, y, ...) :
  The response has five or fewer unique values.  Are you sure you want to do regression?
2: In mean.default(y) : argument is not numeric or logical: returning NA

你可以看到我也犯了同样的错误。因变量是一个字符。我们把它转化为一个因素,它起作用:

代码语言:javascript
复制
train_data$Class = factor(train_data$Class)

fit <- randomForest(Class~. ,data = train_data)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62794338

复制
相关文章

相似问题

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