«generateFilterValuesData» - это функция пакета «mlr», который использует различные алгоритмы для выбора функции.Я хотел бы применять различные алгоритмы итеративным образом к одним и тем же данным, чтобы изучить различные функции, выбранные различными методами.Для этого в принципе я должен применить одну и ту же функцию к тем же данным, варьируя аргумент «метод» (около 15 возможных значений).Я привожу здесь воспроизводимый пример (я не использовал set.seed (), потому что числовые значения сами по себе не имеют значения):
feature_A <- rnorm(200, 5, 2)
feature_B <- rnorm(200, 3, 2)
feature_C <- rnorm(200, 3.7, 1.3)
feature_D <- runif(200)
feature_E <- rpois(200, 1.6)
feature_F <- rpois (200, 7.3)
feature_G <- rlogis(200)
feature_H <- rexp(200, 2)
feature_I <- rexp (200, 3)
test_activ <- as.factor(rbinom(200, 1, 0.5))
df <- data.frame(feature_A, feature_B, feature_C, feature_D,
feature_E, feature_F, feature_G, feature_H,
feature_I, test_activ)
library(mlr)
taskg <- makeClassifTask(data = df, target="test_activ")
fv <- generateFilterValuesData(task, method = c("anova.test"))
methods <- c("anova.test", "auc", "cforest.importance","chi.squared", "gain.ratio", "information.gain",
"kruskal.test", "oneR", "permutation.importance",
"randomForest.importance", "randomForestSRC.rfsrc",
"randomForestSRC.var.select", "ranger.impurity",
"ranger.permutation", "relief", "symmetrical.uncertainty",
"univariate.model.score", "variance")
Я хотел бы итеративно применять функцию «generateFilterValuesData» над задачей taskg,варьирование методов (т.е. итерация по 18 методам).Я пробовал lapply следующим образом:
lapply (methods, generateFilterValuesData, taskg),
, но получаю следующую ошибку: «Ошибка в lapply (методы, generateFilterValuesData, taskg): утверждение не выполнено. Должно применяться одно из следующих действий: * checkClass (task):Должен иметь класс ClassifTask, но имеет класс * 'character' * checkClass (task): Должен иметь класс 'RegrTask', но имеет класс 'character' * checkClass (task): Должен иметь класс 'SurvTask', но имеет класс 'персонаж '"
Я понимаю, что я делаю что-то не так, но я не могу найти, как выполнить эту итерацию над вектором" методов "(поскольку этот вектор содержит переменные значения для одного и того же аргумента, а не для данныхна котором должна применяться функция).