Install/Import Package

require(xgboost)
## Loading required package: xgboost

Data Import and Data Declaration

data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')
dtrain <- xgb.DMatrix(agaricus.train$data, label = agaricus.train$label)
dtest <- xgb.DMatrix(agaricus.test$data, label = agaricus.test$label)
watchlist <- list(eval = dtest, train = dtrain)
num_round <- 20

Parameter Declaration

logregobj <- function(preds, dtrain) {
  labels <- getinfo(dtrain, "label")
  grad   <- ifelse(preds > labels,0.5*(preds-labels),-2*(labels-preds))
  hess   <- ifelse(preds > labels,0.5,2)
  return(list(grad = grad, hess = hess))
}

evalerror <- function(preds, dtrain) {
  labels <- getinfo(dtrain, "label")
  err    <- max(preds - labels,0.5*(labels - preds))^2
  return(list(metric = "error", value = err))
}

param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0, 
              objective=logregobj, eval_metric=evalerror)
bst <- xgb.train(param, dtrain, num_round, watchlist)
## [1]  eval-error:0.949811 train-error:0.949811 
## [2]  eval-error:0.216117 train-error:0.216117 
## [3]  eval-error:0.162565 train-error:0.218107 
## [4]  eval-error:0.445064 train-error:0.445064 
## [5]  eval-error:0.027407 train-error:0.245213 
## [6]  eval-error:0.020450 train-error:0.246430 
## [7]  eval-error:0.020493 train-error:0.225442 
## [8]  eval-error:0.050870 train-error:0.225492 
## [9]  eval-error:0.044809 train-error:0.225234 
## [10] eval-error:0.044719 train-error:0.194424 
## [11] eval-error:0.044733 train-error:0.216054 
## [12] eval-error:0.017133 train-error:0.216808 
## [13] eval-error:0.034298 train-error:0.255737 
## [14] eval-error:0.016201 train-error:0.256351 
## [15] eval-error:0.014581 train-error:0.932218 
## [16] eval-error:0.014701 train-error:0.305888 
## [17] eval-error:0.014754 train-error:0.172715 
## [18] eval-error:0.006573 train-error:0.172690 
## [19] eval-error:0.009774 train-error:0.187793 
## [20] eval-error:0.001229 train-error:0.310690