我试图在拟合模型之后得到混淆矩阵,但没有成功。相反,使用相同的代码和决策树,没有问题。这是我的密码:
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):对象中缺少的值
我也试过这样做:
table(rf_validation, validation$classe)导致了同样的错误。如果我用:
dt_model <- rpart(classe ~ ., data=train, method="class")相反,一切都很好。
我遗漏了什么?
发布于 2016-01-29 19:46:21
正如@lukeA所提到的,由于NA值,我遇到了问题。另一个对我有用的选择是进一步清理我的数据。
training <- training[, colSums(is.na(training)) == 0]删除NA值所形成的特征。
https://stackoverflow.com/questions/35092222
复制相似问题