R:独自の勾配ブースティングアルゴリズムを実装する
独自の勾配ブースティングアルゴリズムを記述しようとしています。私はそこのような既存のパッケージがあり理解gbmし、xgboost,しかし、私はしているアルゴリズムは、独自に書き込むことによって、どのように動作するかを理解したかったです。 irisデータセットを使用していますが、結果はSepal.Length(継続的)です。私の損失関数はmean(1/2*(y-yhat)^2)(基本的には前に1/2の平均二乗誤差)であるため、対応する勾配はただの残差y - yhatです。予測を0に初期化しています。 library(rpart) data(iris) #Define gradient grad.fun <- function(y, yhat) {return(y - yhat)} mod <- list() grad_boost <- function(data, learning.rate, M, grad.fun) { # Initialize fit to be 0 fit <- rep(0, nrow(data)) grad <- grad.fun(y = data$Sepal.Length, yhat = fit) # Initialize model mod[[1]] <- fit # …