|
114 | 114 | #' |
115 | 115 | #' \dontrun{ |
116 | 116 | #' # Example 2 - Hyperparameter Tuning in xgboost |
117 | | -#' library("xgboost") |
| 117 | +#' if (requireNamespace('xgboost', quietly = TRUE)) { |
| 118 | +#' library("xgboost") |
118 | 119 | #' |
119 | | -#' data(agaricus.train, package = "xgboost") |
| 120 | +#' data(agaricus.train, package = "xgboost") |
120 | 121 | #' |
121 | | -#' Folds <- list( |
122 | | -#' Fold1 = as.integer(seq(1,nrow(agaricus.train$data),by = 3)) |
123 | | -#' , Fold2 = as.integer(seq(2,nrow(agaricus.train$data),by = 3)) |
124 | | -#' , Fold3 = as.integer(seq(3,nrow(agaricus.train$data),by = 3)) |
125 | | -#' ) |
| 122 | +#' Folds <- list( |
| 123 | +#' Fold1 = as.integer(seq(1,nrow(agaricus.train$data),by = 3)) |
| 124 | +#' , Fold2 = as.integer(seq(2,nrow(agaricus.train$data),by = 3)) |
| 125 | +#' , Fold3 = as.integer(seq(3,nrow(agaricus.train$data),by = 3)) |
| 126 | +#' ) |
126 | 127 | #' |
127 | | -#' scoringFunction <- function(max_depth, min_child_weight, subsample) { |
| 128 | +#' scoringFunction <- function(max_depth, min_child_weight, subsample) { |
128 | 129 | #' |
129 | | -#' dtrain <- xgb.DMatrix(agaricus.train$data,label = agaricus.train$label) |
| 130 | +#' dtrain <- xgb.DMatrix(agaricus.train$data,label = agaricus.train$label) |
130 | 131 | #' |
131 | | -#' Pars <- list( |
132 | | -#' booster = "gbtree" |
133 | | -#' , eta = 0.01 |
134 | | -#' , max_depth = max_depth |
135 | | -#' , min_child_weight = min_child_weight |
136 | | -#' , subsample = subsample |
137 | | -#' , objective = "binary:logistic" |
138 | | -#' , eval_metric = "auc" |
139 | | -#' ) |
| 132 | +#' Pars <- list( |
| 133 | +#' booster = "gbtree" |
| 134 | +#' , eta = 0.01 |
| 135 | +#' , max_depth = max_depth |
| 136 | +#' , min_child_weight = min_child_weight |
| 137 | +#' , subsample = subsample |
| 138 | +#' , objective = "binary:logistic" |
| 139 | +#' , eval_metric = "auc" |
| 140 | +#' ) |
140 | 141 | #' |
141 | | -#' xgbcv <- xgb.cv( |
142 | | -#' params = Pars |
143 | | -#' , data = dtrain |
144 | | -#' , nround = 100 |
145 | | -#' , folds = Folds |
146 | | -#' , prediction = TRUE |
147 | | -#' , showsd = TRUE |
148 | | -#' , early_stopping_rounds = 5 |
149 | | -#' , maximize = TRUE |
150 | | -#' , verbose = 0 |
151 | | -#' ) |
| 142 | +#' xgbcv <- xgb.cv( |
| 143 | +#' params = Pars |
| 144 | +#' , data = dtrain |
| 145 | +#' , nround = 100 |
| 146 | +#' , folds = Folds |
| 147 | +#' , prediction = TRUE |
| 148 | +#' , showsd = TRUE |
| 149 | +#' , early_stopping_rounds = 5 |
| 150 | +#' , maximize = TRUE |
| 151 | +#' , verbose = 0 |
| 152 | +#' ) |
152 | 153 | #' |
153 | | -#' return( |
154 | | -#' list( |
155 | | -#' Score = max(xgbcv$evaluation_log$test_auc_mean) |
156 | | -#' , nrounds = xgbcv$best_iteration |
| 154 | +#' return( |
| 155 | +#' list( |
| 156 | +#' Score = max(xgbcv$evaluation_log$test_auc_mean) |
| 157 | +#' , nrounds = xgbcv$best_iteration |
| 158 | +#' ) |
157 | 159 | #' ) |
158 | | -#' ) |
159 | | -#' } |
| 160 | +#' } |
160 | 161 | #' |
161 | | -#' bounds <- list( |
162 | | -#' max_depth = c(2L, 10L) |
163 | | -#' , min_child_weight = c(1, 100) |
164 | | -#' , subsample = c(0.25, 1) |
165 | | -#' ) |
| 162 | +#' bounds <- list( |
| 163 | +#' max_depth = c(2L, 10L) |
| 164 | +#' , min_child_weight = c(1, 100) |
| 165 | +#' , subsample = c(0.25, 1) |
| 166 | +#' ) |
166 | 167 | #' |
167 | | -#' ScoreResult <- bayesOpt( |
168 | | -#' FUN = scoringFunction |
169 | | -#' , bounds = bounds |
170 | | -#' , initPoints = 3 |
171 | | -#' , iters.n = 2 |
172 | | -#' , iters.k = 1 |
173 | | -#' , acq = "ei" |
174 | | -#' , gsPoints = 10 |
175 | | -#' , parallel = FALSE |
176 | | -#' , verbose = 1 |
177 | | -#' ) |
| 168 | +#' ScoreResult <- bayesOpt( |
| 169 | +#' FUN = scoringFunction |
| 170 | +#' , bounds = bounds |
| 171 | +#' , initPoints = 3 |
| 172 | +#' , iters.n = 2 |
| 173 | +#' , iters.k = 1 |
| 174 | +#' , acq = "ei" |
| 175 | +#' , gsPoints = 10 |
| 176 | +#' , parallel = FALSE |
| 177 | +#' , verbose = 1 |
| 178 | +#' ) |
| 179 | +#' } |
178 | 180 | #' } |
179 | 181 | #' @importFrom data.table data.table setDT setcolorder := as.data.table copy .I setnames is.data.table rbindlist |
180 | 182 | #' @importFrom utils head tail |
|
0 commit comments