R использую мою собственную модель в RFE (исключение рекурсивных функций), чтобы выбрать важную функцию - PullRequest
0 голосов
/ 05 июня 2018

Используя RFE, вы можете получить рейтинг важности функций, но сейчас я могу использовать только модель и параметр внутри пакета, например: lmFuncs(linear model),rfFuncs(random forest) кажется, что

caretFuncs

может сделать некоторыепользовательские настройки для вашей собственной модели и параметра, но я не знаю деталей, и формальный документ не дал подробностей, я хочу применить svm и gbm к этому процессу RFE, потому что это текущая модель, которую я использовал для обучения,У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 01 октября 2018

Я попытался воссоздать рабочий пример на основе документации.Вы правильно определили использование caretFuncs, затем вы можете установить параметры модели в вызове rfe (вы также можете определить trainControl объект и т. Д.).

# load caret
library(caret)

# load data, get target and feature column labels
data(iris)
col_names = names(iris);target = "Species"
feature_names = col_names[col_names!=target]

# construct rfeControl object
rfe_control = rfeControl(functions = caretFuncs, #caretFuncs here
                     method="cv",
                     number=5)

# construct trainControl object for your train method 
fit_control = trainControl(classProbs=T,
                        search="random")

# get results
rfe_fit = rfe(iris[,feature_names], iris[,target],
             sizes = 1:4,
             rfeControl = rfe_control,
             method="svmLinear",
             # additional arguments to train method here
             trControl=fit_control)

Если вы хотите погрузиться глубже вНезависимо от того, возможно, вы захотите посетить ссылки ниже.

rfe документация с основными фрагментами кода:
https://www.rdocumentation.org/packages/caret/versions/6.0-80/topics/rfe

caret документация по rfe:
https://topepo.github.io/caret/recursive-feature-elimination.html

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...