Ошибка при использовании функции makeRegrTask из пакета MLR - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь сделать выбор функции, используя пакет MLR.Вот мой код:

#Feature Extraction
features.task = makeRegrTask(id = "cr", data = final1, target = "spam")
feature_selection= generateFilterValuesData(features.task, method = "information.gain")
plotFilterValues(feature_selection)

Это ошибка, которую я получаю:

> features.task = makeRegrTask(id = "cr", data = final1, target = "spam")
Error in (function (cn, x)  : 
  Unsupported feature type (character) in column 'host'.

Что мне делать, чтобы устранить эту ошибку?Заранее спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Если host - символьная переменная, вам следует сначала преобразовать ее в коэффициент.mlr может иметь дело с факторами.

Возможный код:

data = final1 %>% mutate_at(vars(one_of("host")), funs( as.factor)) 
data = final1 %>% mutate_if(sapply(data_test, is.character), as.factor)

Обратите внимание, что это код dplyr.В первой строке вы можете добавить имена столбцов, которые вы хотели бы преобразовать в коэффициент, перед тем, как передать его задаче.Второй преобразует все символьные столбцы.

0 голосов
/ 12 мая 2018

Столбец host содержит символьные (строковые) значения, но makeRegrTask ожидает увидеть только переменную ответа и предикторы во всем, что вы передадите как data.

Из документов :

data: фрейм данных, содержащий объекты и целевую переменную

Если вы намереваетесьчтобы host был категориальным предиктором, вам нужно создать фиктивные переменные, представляющие каждый уровень.В противном случае сбросьте host перед передачей final1 в makeRegrTask.

...