Переменная Значение R - PullRequest
0 голосов
/ 28 апреля 2018

У меня проблемы с важностью переменной в 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,
...