У меня есть набор данных, для которого я использую функцию model.matrix()
для преобразования факторных переменных в фиктивные переменные. Мои данные содержат 10 таких столбцов, каждый из которых имеет 3 уровня (2,3,4), и я создаю фиктивные переменные для каждого из них в отдельности.
xFormData <- function(dataset){
mm0 <- model.matrix(~ factor(dataset$type) , data=dataset)
mm1 <- model.matrix(~ factor(dataset$type_last1), data = dataset)
mm2 <- model.matrix(~ factor(dataset$type_last2), data = dataset)
mm3 <- model.matrix(~ factor(dataset$type_last3), data = dataset)
mm4 <- model.matrix(~ factor(dataset$type_last4), data = dataset)
mm5 <- model.matrix(~ factor(dataset$type_last5), data = dataset)
mm6 <- model.matrix(~ factor(dataset$type_last6), data = dataset)
mm7 <- model.matrix(~ factor(dataset$type_last7), data = dataset)
mm8 <- model.matrix(~ factor(dataset$type_last8), data = dataset)
mm9 <- model.matrix(~ factor(dataset$type_last9), data = dataset)
mm10 <- model.matrix(~ factor(dataset$type_last10), data = dataset)
dataset <- cbind(dataset, mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7, mm8, mm9, mm10)
dataset
}
Мне интересно, является ли это неправильной процедурой, так как после запуска randomForest
для данных и построения графика важности переменной он отображал разные столбцы фиктивных переменных по отдельности. Так, скажем, столбцы 61-63 были 3 фиктивными переменными для столбца 10, randomForest
видит столбец 62 сам по себе как важный предиктор.
У меня есть 2 вопроса:
1) Это нормально?
2) Если нет, как я могу сгруппировать фиктивные переменные, чтобы rf знал, что они вместе?