首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >物体中的缺失值-R中的随机森林混淆矩阵

物体中的缺失值-R中的随机森林混淆矩阵
EN

Stack Overflow用户
提问于 2016-01-29 19:10:04
回答 1查看 8.6K关注 0票数 3

我试图在拟合模型之后得到混淆矩阵,但没有成功。相反,使用相同的代码和决策树,没有问题。这是我的密码:

代码语言:javascript
运行
复制
library(caret)
library(randomForest)

training <- read.csv("https://d396qusza40orc.cloudfront.net/predmachlearn/pml-training.csv", na.strings=c("#DIV/0!"), row.names = 1)

to_exclude <- nearZeroVar(training)
training <- training[, -to_exclude]

set.seed(1234)
train_idx <- createDataPartition(training$classe, p = 0.8, list = FALSE)
train <- training[train_idx,]
validation <- training[-train_idx,]

rf_model <- randomForest(classe ~ . , data=train, method="class")
rf_validation <- predict(rf_model, validation, type="class")

confusionMatrix(rf_validation, validation$classe)

这就是错误:

Na.fail.default中的错误(classe= c(1L,1L,1L,1L,1L,1L,1L,1L,1L):对象中缺少的值

我也试过这样做:

代码语言:javascript
运行
复制
table(rf_validation, validation$classe)

导致了同样的错误。如果我用:

代码语言:javascript
运行
复制
dt_model <- rpart(classe ~ ., data=train, method="class")

相反,一切都很好。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-29 19:46:21

正如@lukeA所提到的,由于NA值,我遇到了问题。另一个对我有用的选择是进一步清理我的数据。

代码语言:javascript
运行
复制
training <- training[, colSums(is.na(training)) == 0]

删除NA值所形成的特征。

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

https://stackoverflow.com/questions/35092222

复制
相关文章

相似问题

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