我有一個數據集,我使用model.matrix()
函數將因子變量轉換爲虛擬變量。我的數據有10個這樣的列,每個列有3個級別(2,3,4),我一直在爲它們分別創建虛擬變量。R model.matrix設置
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欄是第10欄的3個虛擬變量,randomForest
本身就是第62欄,這是一個重要的預測指標。
我有2個問題:
1)可以嗎?
2)如果不是,我該如何對虛擬變量進行分組,以便rf知道他們在一起?
您不需要創建虛擬變量:確保它們是因素(而不是數字)就足夠了。 – 2012-02-12 23:06:15
@VincentZoonekynd這實際上是http://stackoverflow.com/questions/9145874/r-caret-rfe-variable-selection-for-factors-and-nas/9147316#9147316的後續行動,其中OP發現他的機器學習工作流程*不*使用因子編碼功能。 – 2012-02-13 19:27:00