首页 > 解决方案 > gbm(广义提升模型)函数未正确训练

问题描述

我正在尝试使用“gbm”功能进行预测,尽管程序在使用时无法识别出明确的错误

head (boos.model)

head (pred_boos)

我没有 0 和 1 作为预测,我不知道如何解决它。我已经尝试过其他型号并达到要求data.test = data [801: 1000],一切都很好。所以我猜错误是在继续的行中。我的代码如下:

library("mltools")
library("caret") 
library("MASS")
library("MLmetrics") 
library("gbm")
library("mlbench")

data=data.frame()

for (i in 0:4){ 
  
  mu1=c(0+i,4) 
  Sigma= matrix(c(1,0.5,0.5,1),ncol=2)
  X1_distribution=mvrnorm(n=100,mu=mu1,Sigma=Sigma)
  
  
  mu2=c(5-i,1) 
  Sigma= matrix(c(1,0.5,0.5,1),ncol=2) 
  X2_distribution=mvrnorm(n=100,mu=mu2,Sigma=Sigma)
  
  X=rbind(X1_distribution,X2_distribution)
  Y=c(rep(1,100),
      rep(0,100)) 
  data.aux=data.frame(Y=Y,
                      X1=X[,1],
                      X2=X[,2])
  
  data=rbind(data,data.aux)
}

data.train=data[1:800,]
data.test=data[801:1000,]

boos.model= gbm(form=formula('factor(Y) ~ .'),
data=data.train, 
distribution='bernoulli', 
n.trees=5000, 
interaction.depth = 4)

#head(boos.model)

pred_boos= predict(boos.model, 
newdata=data.test, 
n.trees=5000)

#head(pred_boos)

标签: rmachine-learning

解决方案


推荐阅读