我对stackoverflow还不熟悉,所以我对自己犯的任何错误都要事先道歉。
我在R中运行各种机器学习模型,使用
插入符号
包装-
Logistic回归、支持向量机、决策树、增强树、神经网络和K近邻
.
我使用插入符号作为所有这些模型的实现,只需要更改方法的名称。
我想提取模型在训练集和测试集上所做的预测,并将输出/因变量的这些预测存储回数据集,以便与实际值进行比较。
我研究了一下,找到了下面的代码:
results<-extractPrediction(models, testX = NULL, testY = NULL, unkX = NULL, unkOnly = !is.null(unkX) & is.null(testX), verbose = FALSE)
其中models是要提取结果的所有模型的列表。
首先,代码抛出了一个错误,除非以下面的方式执行,但我们暂时不讨论这个问题。
results<-extractPrediction(models)
现在,当我将模型输入到这个函数中时,我得到了模型的实际值和预测值,但是由于没有可用的索引号,我不知道哪个值对应于原始数据集中的哪个记录。
其次,输入函数的模型只包含训练集而不包含测试集。我需要将训练和测试集的预测值结合起来,并按照正确的顺序进行比较。
我想做的是可能的,还是仅仅是为了星星??
我还提供了一个模型示例,供您参考:
在数据集上实现线性支持向量机
cl <- parallel::makeCluster(detectCores(logical=TRUE), type='PSOCK')
doParallel::registerDoParallel(cl)
start.time <- Sys.time()
trnControl <- trainControl(method='cv',number=5, allowParallel = T,verboseIter = T)
set.seed(11)
ds1lnrsvm <- train(shortflag~., data=trnds1,method="svmLinear",
trControl=trnControl)
ds1lnrsvm_t<- Sys.time() - start.time
parallel::stopCluster(cl)
registerDoSEQ()
## Implementing Linear SVM model on test dataset
ds1lnrsvmres <- predict(object=ds1lnrsvm, newdata=testds1)
## confusion matrix to check performance
confusionMatrix(data=ds1lnrsvmres, reference=testds1$shortflag,positive="1")
任何关于如何做到这一点的帮助或建议将不胜感激。
提前谢谢你的建议。