trainer <- function(training, testing){
trControl <- trainControl(method="cv", number=5)
modelFit <- train(training$classe ~ ., method="rf", preProcess="pca",
trControl=trControl, data=training)
confMatrix <- confusionMatrix(testing$classe, predict(modelFit,testing))
output <- list(modelFit, confMatrix)
return(output)
}
返回值应该是一个模型,modelFit
不是列表,但是当我检查时class(output[1])
,它报告为列表。似乎是以某种方式将模型文件转换为列表。如何保留原始数据类型而不将其转换为列表,因为我需要在返回中访问模型文件。
如上所示,当output
是列表并且[ ]
用于提取元素时,总是会返回列表(带有指定索引的一个或多个元素)。但是,在使用时,[[ ]]
您将在特定位置提取元素,并且该元素可能具有不同的类。
您可以sapply(output, class)
查看给定列表中所有项目的类。
因此,您的函数似乎运行良好,只需确保使用output<-trainer(...); output[[1]]
来提取模型即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句