在R中将对象名称转换为列表中的字符串

我似乎找不到一个有效的答案,但本质上,我正在循环处理我创建的模型,并希望输出模型的准确性以及模型的名称,如下所示:

  accuracy_data <- function(model_prediction,model_name){     confmat <- confusionMatrix(model_prediction, test_data$DEATH_EVENT)     accuracy_results <- round(confmat$overall[["Accuracy"]]*100, digits=2)     print(paste(model_name," - ",accuracy_results,"%",sep=""))     }  pred_list <- list(log_pred,knn_pred,svm_pred,non_svm_pred,tree_pred,rf_pred,gbm_pred,xgb_pred,nn_pred)  for(predic in pred_list){     accuracy_data(predic,"Model Name")     }

输出如下:

[1] "Model Name - 83.05%"[1] "Model Name - 86.44%"[1] "Model Name - 83.05%"[1] "Model Name - 83.05%"[1] "Model Name - 86.44%"[1] "Model Name - 84.75%"[1] "Model Name - 91.53%"[1] "Model Name - 89.83%"[1] "Model Name - 86.44%"

我找不到一种方法来用每个模型的名称替换“Model Name”。有没有简单的方法来做到这一点?无论是使用pred_list的名称还是其他方法?

任何建议将不胜感激。在询问之前,我确实已经在谷歌和这里搜索过了,但没有成功!

另外还有一个额外的问题 – 有没有一种方法可以将这些结果输出到某种表格或数组中,而不是像现在这样?(如果这应该是一个单独的问题,请原谅)


回答:

我们可以创建一个named列表,使用list(log__pred = log_pred, ...),或者更简单地使用dplyr::lstpurrr::lst

pred_list <- dplyr::lst(log_pred, knn_pred, svm_pred, non_svm_pred, tree_pred,           rf_pred, gbm_pred, xgb_pred, nn_pred)

然后,循环处理’pred_list’的names

for(nm in names(pred_list)){    accuracy_data(pred_list[[nm]], nm) }

关于输出,它只是print,即没有返回值。如果我们需要创建一个对象,那么在函数内部我们可以将print更改为返回一个输出

accuracy_data <- function(model_prediction,model_name){ confmat <- confusionMatrix(model_prediction, test_data$DEATH_EVENT) accuracy_results <- round(confmat$overall[["Accuracy"]]*100, digits=2) return(paste(model_name," - ",accuracy_results,"%",sep="")) }

然后创建一个vector来存储输出并追加输出

out <- c()for(nm in names(pred_list)) {    out <- c(out, accuracy_data(pred_list[[nm]], nm))}

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注