У меня проблемы с важностью переменной в R. Она печатает важность, но не включает имя переменной. Я не могу понять, где он получает индекс в левом столбце. Ниже приведен код и вывод.
У меня есть набор данных в следующей форме, за исключением того, что у меня есть 192 переменные и 10000 наблюдений. Столбцы 2-24 являются непрерывными, а остальные являются категоричными.
ОБНОВЛЕНИЕ: я запустил один и тот же код без изменения категориальных переменных на факторы. При вызове varimp он теперь печатает соответствующие имена переменных. Кто-нибудь знает, почему это не работает, когда я изменяю переменные на категориальные
Output X1 X2 X3 X4
0 2 50 44 22
1 3 40 33 11
1 2 50 22 10
0 1 42 12 18
my_data$Output[my_data$Output == "NA"] <- NA
#Converting Variables to Factors
my_data$Output <- factor(my_data$Output)
#Only use complete observations -- eliminate NA's
clean_data <- my_data[complete.cases(my_data),]
#Converts all columns to factors
clean_data[,25:189] = data.frame(apply(clean_data[,25:189], 2, as.factor))
#Split into testing and training
set.seed(7)
Data_Splitting <- createDataPartition(clean_data$Output,p=2/3,list=FALSE)
training = clean_data[Data_Splitting,]
testing = clean_data[-Data_Splitting,]
#Random Forest training
set.seed(7)
rf_train <- train(Output ~ ., data = training, method = "rf",
trControl = trainControl(method = "cv", number = 4, classProbs = T,
summaryFunction = twoClassSummary),
metric = "ROC")
#Plot of variable importance
varImp(rf_train)
plot(varImp(rf_train))
print(rf)
Overall
8 100.00,
23 99.80,
21 98.19,
2 94.17,
634 92.06,
7 91.75,
1010 81.26,
636 69.02,
9 56.88,
630 49.90,
1 42.60,
4 36.95,
16 29.34,
15 29.10,
1008 28.83,
17 28.54,
18 27.50,
22 27.04,
3 26.78,
14 26.36,