簡體   English   中英

讀取多個rds模型並在lapply中使用預測函數?

[英]Read multiple rds models and use predict function in lapply?

在讀取所有模型后,我將一堆模型保存為.rds,我在測試數據的循環中使用預測函數,顯示預測方法的錯誤,但使用單個模型正在工作。 (模型使用mlr包構建)

我從一個文件夾中讀取所有模型並在測試數據上使用lapply,

files = list.files(path = 'C:/rf_models', pattern = '\\.rds$', full.names = TRUE)
read_models <- do.call("rbind", lapply(files, readRDS))
print(lapply(read_models, function (x) predict(x, newdata = as.data.frame(test_data))))

它顯示在Error下面並在控制台中打開Browse [1]>

Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "c('FilterWrapper', 'BaseWrapper', 'Learner')"
Called from: predict(x, newdata = as.data.frame(test_data))
Browse[1]>

即使我用於循環

for (i in 1:80){
  pred_models <- predict(read_models[[i]], newdata = as.data.frame(test_data))
}

也表明

Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "c('FilterWrapper', 'BaseWrapper', 'Learner')"

所有在我已加載mlr庫的R腳本中完成

如果我單獨閱讀模型,它是有效的

model <- readRDS("C:/rf_models/rf_models_31.rds")
prediction <- predict(model, newdata = as.data.frame(test_data))
prediction
Prediction: 1 observations
predict.type: prob
threshold: 0=0.50,1=0.50
time: 0.03
  truth prob.0 prob.1 response
1     0   0.12   0.88        1

我希望pred_models能夠存儲所有預測。

只使用它工作的文件名加載

files = list.files(path = 'C:/rf_models', pattern = '.rds$', full.names = TRUE)
for (i in 1:80){
  model <- readRDS(files[i])
  prediction <- predict(model, newdata = as.data.frame(test_data))
  print(prediction)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM