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