Реализация k прототипа - PullRequest
0 голосов
/ 02 мая 2019

У меня есть смешанный набор данных из числовых и категориальных переменных.Я пытался реализовать kprototype на основе https://www.kaggle.com/rahultej/k-prototypes-correlation-randomforest и https://journal.r -project.org / archive / 2018 / RJ-2018-048 / RJ-2018-048.pdf

Итак, я просто удалил столбцы, содержащие NA в моем фрейме данных, и попытался реализовать kprototype без каких-либо преобразований данных для категориальной переменной.

Столбцы, содержащие категориальные данные, не имеют одинакового числакатегории в нем.Пример: столбец X имеет 4 категории, а столбец Y - 15 категорий.Я не уверен, что kprototype будет работать для такого сценария ??

Я получаю следующую ошибку

Ошибка в Ops.data.frame (x [, j], rep (protos [i, j], nrows)): список длиной 1043 не имеет значения

Я также пытался преобразовать категориальные переменные в числовые.Я не использовал функцию масштабирования, хотя.Когда я преобразую категориальную переменную в числовое значение, она выдает ошибку «Без факторных переменных в x! Попробуйте использовать kmeans () ...»

data_kproto <- kproto(data, k = 4)

1 Ответ

0 голосов
/ 24 июня 2019

Включите все факторы с более чем 2 уровнями в отдельные столбцы. Масштабировать числовые данные до z баллов. Убедитесь, что данные представляют собой фрейм данных.

# Turn to dummies
library(caret)
dummies <- dummyVars(" ~ .", data)
data <- data.frame(predict(dummies, newdata = data))

# Scale
data <- scale(data[,c("numeric_1", "numeric_2")])

# Check data frame
data <- as.data.frame(data)

# kproto
data_kproto <- kproto(data, k = 4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...