Исключение поля ID при подгонке модели в R - PullRequest
0 голосов
/ 18 мая 2018

У меня есть простая модель случайного леса, которую я создал и протестировал в R. На данный момент я исключил внутренний идентификатор компании из моих кадров данных обучения / тестирования.Есть ли способ в R, чтобы я мог включить этот столбец в свои данные и чтобы тренировка / выполнение моей модели игнорировало поле?

Я, очевидно, не хотел бы, чтобы модель пыталась включить ее в качестве переменной, но при экспорте данных с добавлением столбца прогнозируемого результата мне понадобится этот внутренний идентификатор, чтобы связать его с другим клиентом.данные, так что я знаю, какие клиенты были классифицированы как

Я просто использую готовую функцию случайного леса из библиотеки randomForest

#divide data into training and test sets
set.seed(3)
id<-sample(2,nrow(Churn_Model_Data_v2),prob=c(0.7,0.3),replace = TRUE)
churn_train<-Churn_Model_Data_v2[id==1,]
churn_test<-Churn_Model_Data_v2[id==2,]

#changes Churn data 1/2 to a factor for model
Churn_Model_Data_v2$`Churn` <- as.factor(Churn_Model_Data_v2$`Churn`)
churn_train$`Churn` <- as.factor(churn_train$`Churn`)
#churn_test$`Churn` <- as.factor(churn_test$`Churn`)

bestmtry <- tuneRF(churn_train,churn_train$`Churn`, stepFactor = 1.2, 
improve =0.01, trace=T, plot=T )

#creates model based on training data, views model
churn_forest <- randomForest(`Churn`~. , data= churn_train )
churn_forest


#shows us what variables are most important
importance(churn_forest)
varImpPlot(churn_forest)

#predicts churn diagnosis on test data
predict_churn <- predict(churn_forest, newdata = churn_test, type="class")
predict_churn

1 Ответ

0 голосов
/ 20 мая 2018

Простой пример исключения конкретного столбца или набора столбцов выглядит следующим образом:

library(MASS)
temp<-petrol
randomForest(No ~ .,data = temp[, !(colnames(temp) %in% c("SG"))]) # One Way
randomForest(No ~ .-SG,data = temp) #Another way with similar result

Этот метод исключения обычно применим и к другим функциям / алгоритмам в R тоже.

...