R-我正在将种子设置在梯度提升机(GBM)型号上,但我不断获得不同的预测

  • 本文关键字:设置 种子 GBM 提升机 r gbm
  • 更新时间 :
  • 英文 :


我正在使用梯度提升计算机(GBM)算法进行信用风险建模,并且在预测默认概率(PD)时,即使我有我的默认概率(PD),即使我有我的代码中的set.seed(1234)

是什么可能导致这种情况以及如何修复它。这是我的代码:

fitControl <- trainControl(
  method = "repeatedcv",
  number = 5,
  repeats = 5)
modelLookup(model='gbm')
#Creating grid
grid <- expand.grid(n.trees=c(10,20,50,100,500,1000),shrinkage=c(0.01,0.05,0.1,0.5),n.minobsinnode
                    = c(3,5,10),interaction.depth=c(1,5,10))
#SetSeed
set.seed(1234)

# training the model
model_gbm<-train(trainSet[,predictors],trainSet[,outcomeName],method='gbm',trControl=fitControl,tuneGrid=grid)
# summarizing the model
print(model_gbm)
plot(model_gbm)
#using tune length
model_gbm<-train(trainSet[,predictors],trainSet[,outcomeName],method='gbm',trControl=fitControl,tuneLength=10)
print(model_gbm)
plot(model_gbm)
#Checking variable importance for GBM
#Variable Importance
library(gbm)
varImp(object=model_gbm, numTrees = 50)
#Plotting Varianle importance for GBM
plot(varImp(object=model_gbm),main="GBM - Variable Importance")
#Checking variable importance for RF
varImp(object=model_rf)
#Plotting Varianle importance for Random Forest
plot(varImp(object=model_rf),main="RF - Variable Importance")
#Checking variable importance for NNET
varImp(object=model_nnet)
#Plotting Variable importance for Neural Network
plot(varImp(object=model_nnet),main="NNET - Variable Importance")
#Checking variable importance for GLM
varImp(object=model_glm)
#Plotting Variable importance for GLM
plot(varImp(object=model_glm),main="GLM - Variable Importance")
#Predictions
predictions<-predict.train(object=model_gbm,testSet[,predictors],type="raw")
table(predictions)
confusionMatrix(predictions,testSet[,outcomeName])
PD <- predict.train(object=model_gbm,credit_transformed[,predictors],type="prob")

我假设您正在使用caret中使用train()。我建议您使用同一软件包中更复杂但可自定义的trainControl()。从?trainControl可以看到,参数seeds是:

可选的整数将用于将种子设置为每个 重新采样迭代。当模型运行时,这很有用 平行线。Na的值将阻止种子设置在 工艺过程虽然零值将使用 随机集体集。另外,可以使用列表。列表 B 1元素应为b是重建数量,除非 方法是" boot632",在这种情况下是重新采样的数量加1。 列表的第一个元素应为整数的向量 长度为m,其中m是要评估的模型数。最后 列表的元素只需要一个单个整数(对于最终 模型)。请参阅下面的示例部分和详细信息部分。

修复seeds应该解决问题。请下次尝试提供数据类似的dput o,以便可再现。最好!

最新更新