【发布时间】:2017-03-23 19:24:18
【问题描述】:
我已经训练了一个 SVM 模型。我现在正在尝试生成混淆矩阵并不断收到以下错误:
confusionMatrix.default(test.pred, data_test$FAVOURITES_COUNT) :数据的级别不能超过 参考文献
这里是代码
model <- svm(FAVOURITES_COUNT~., data = data_train);
test.pred <- predict(model, data_test,na.action = na.pass);
confusionMatrix(test.pred,data_test$FAVOURITES_COUNT)
我已经使用以下方法测试了它们是否具有相同的级别:
> identical (levels(test.pred), levels(data_test$FAVOURITES_COUNT))
[1] TRUE
pred 和 data_test$FAVOURITES_COUNT 的结构:
> str(test.pred) Named num [1:440] 1539 1516 1560 1560 1450 ...
> - attr(*, "names")= chr [1:440] "1" "4" "11" "13" ...
> str(data_test$FAVOURITES_COUNT)
int [1:440] 62 10725 84 84 19 99 54 84 84 84 ...
我认为这个问题与 chr 和 int 不同的类型有关,但我不知道如何解决这个问题,已经有另一个这样的问题,但如果我将 chr 更改为 int,它也没有提供解决方案
pred<-as.integer(format(round(predict(model,data_test))))
问题仍然存在。如何解决此错误
数据集
完整代码
rm(list=ls())
df <- read.csv("path/data.csv")
mydata <- df
mydata$ALTMETRIC_ID <- NULL
#library(caret)
split=0.60
trainIndex <- createDataPartition(mydata$FAVOURITES_COUNT, p=split, list=FALSE)
data_train <- mydata[ trainIndex,]
data_test <- mydata[-trainIndex,]
#library(e1071)
model <- svm(FAVOURITES_COUNT~., data = data_train);
test.pred <- predict(model, data_test,na.action = na.pass);
confusionMatrix(test.pred,data_test$FAVOURITES_COUNT)
【问题讨论】:
-
@ProcrastinatusMaximus 添加
标签: r