在R中拟合模型时排除ID字段

在R中拟合模型时排除ID字段,r,random-forest,data-science,R,Random Forest,Data Science,我在R中创建并测试了一个简单的随机森林模型。目前,我已经从培训/测试数据框架中排除了一个内部公司ID。在R中是否有一种方法可以将此列包含在数据中,并使模型的训练/执行忽略该字段 显然,我不希望模型尝试将其作为变量合并,但在导出数据并添加预测结果的列时,我需要该内部id来连接其他客户数据,以便我知道客户被分类为哪些类别 我只是在使用randomForest库中现成的randomForest函数 #divide data into training and test sets set.seed(3)

我在R中创建并测试了一个简单的随机森林模型。目前,我已经从培训/测试数据框架中排除了一个内部公司ID。在R中是否有一种方法可以将此列包含在数据中,并使模型的训练/执行忽略该字段

显然,我不希望模型尝试将其作为变量合并,但在导出数据并添加预测结果的列时,我需要该内部id来连接其他客户数据,以便我知道客户被分类为哪些类别

我只是在使用randomForest库中现成的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
#将数据分为训练集和测试集
种子(3)

id排除特定列或列集的简单示例如下

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
库(MASS)

temp您是否尝试过类似于“随机森林”(chorn~.-id,data=chorn\u train)
?使用
~。
语法时,通常可以在要排除的单个变量(或变量向量)之前添加减号。顺便说一句,您也不需要使用
chorn
周围的所有引号,只有在变量名中包含空格时才需要这些引号,如
chorn Var
@GraceMahoney非常感谢您的提示。我很感谢一些对R不太熟悉的人对这个问题的帮助。我经常发现它的语法非常简单,允许我做一些我想象中非常复杂的事情。再次感谢你的帮助!