【发布时间】:2017-10-20 01:27:36
【问题描述】:
我正在尝试使用随机森林模型根据身高、体重和兄弟姐妹数量来预测性别。我从一个包含数十个变量的更大数据集中获取数据,但我已经将其清理到这个“干净”的 data.frame 中,省略了 NA 值,只有我关心的 4 个变量,最后一列是 Gender .
我尝试过修改代码并到处搜索,但找不到具体的修复方法。
代码如下:
ind <- sample(nrow(clean),0.8*nrow(clean))
train <- clean[ind,]
test <- clean[-ind,]
rf <- randomForest(Gender ~ ., data = train[,1:4], ntree = 20)
pred <- predict(rf, newdata = test[,-c(length(test))])
cm <- table(test$Gender, pred)
cm
这是输出:
Error in `[.default`(table(observed = y, predicted = out.class), levels(y), : subscript out of bounds
Traceback:
1. randomForest(Gender ~ ., data = train[, 1:4], ntree = 20)
2. randomForest.formula(Gender ~ ., data = train[, 1:4], ntree = 20)
3. randomForest.default(m, y, ...)
4. table(observed = y, predicted = out.class)[levels(y), levels(y)]
5. `[.table`(table(observed = y, predicted = out.class), levels(y),
. levels(y))
6. NextMethod()
【问题讨论】:
-
你能告诉我们
clean里有什么吗? -
clean 有 4 列,每列大约 1000 行:身高(以厘米为单位)、体重(以千克为单位)、兄弟姐妹的数量(整数)和性别(“男性”或“女性”)。
标签: r random-forest