Прогнозировать использование функции с помощью pre (), пакета Rulefit

#r #predict

#r #прогнозировать

Вопрос:

Я пробовал реализацию rulefit в caret, используя pre() функцию для задачи классификации. Я использовал приведенную ниже команду для обучения модели

 fit = pre(output~.,data=train)
  

Я предполагаю, что созданный объект fit является моделью, которая имеет «правила и исходные функции» в качестве своих предикторов и может использоваться для прогнозирования на тестовых данных.

Я не совсем понимаю, как использовать эту модель для прогнозирования выходных данных теста.

Я попробовал predict(fit,test_data) спрогнозировать команду predict на test_data , полученным результатом является числовой вектор, значения которого варьируются от .9 до 1.9

Было бы полезно, если бы кто-нибудь мог подсказать мне в этом.Я хотел бы, является ли созданный объект fit моделью, и если да, то как использовать это для прогнозирования в testdata

С уважением, JJ

Ответ №1:

Если output это двоичный коэффициент, вы должны указать family = binomial при вызове функции pre() . В противном случае по умолчанию будет приниматься распределение ответов по Гауссу (как в случае с большинством контролируемых методов обучения в R). Убедитесь, что output это кодируется как двоичный множитель в train . Смотрите также ?pre .

Возвращаемые прогнозируемые значения по умолчанию соответствуют шкале линейного предиктора, поэтому они могут принимать значения от -Inf до Inf . Чтобы получить прогнозируемые вероятности, вам нужно указать type = "response" , или type = "class" для прогнозируемого класса. Смотрите также ?predict.pre .

Краткое руководство по пакету pre можно найти здесь: https://github.com/marjoleinF/pre

Ответ №2:

Из справочного руководства по pre пакету:

использовать predict.pre(pre_obj, newdata)

Комментарии:

1. Спасибо за помощь, я попробовал эту команду, но получил сообщение об ошибке «не удалось найти функцию «predict.pre»».

2. Если fit = pre(output ~.,data = train) был успешно запущен, predict(fit, newdata = test_data) должен сработать.