boost_from_prediction.R 1.3 KB
Newer Older
Guolin Ke's avatar
Guolin Ke committed
1
2
3
require(lightgbm)
require(methods)

4
5
6
# Load in the agaricus dataset
data(agaricus.train, package = "lightgbm")
data(agaricus.test, package = "lightgbm")
Guolin Ke's avatar
Guolin Ke committed
7
dtrain <- lgb.Dataset(agaricus.train$data, label = agaricus.train$label)
8
dtest <- lgb.Dataset.create.valid(dtrain, data = agaricus.test$data, label = agaricus.test$label)
Guolin Ke's avatar
Guolin Ke committed
9
10

valids <- list(eval = dtest, train = dtrain)
11
#--------------------Advanced features ---------------------------
Guolin Ke's avatar
Guolin Ke committed
12
# advanced: start from a initial base prediction
13
14
15
16
17
18
19
20
21
print("Start running example to start from a initial prediction")

# Train lightgbm for 1 round
param <- list(num_leaves = 4,
              learning_rate = 1,
              nthread = 2,
              objective = "binary")
bst <- lgb.train(param, dtrain, 1, valids = valids)

Guolin Ke's avatar
Guolin Ke committed
22
# Note: we need the margin value instead of transformed prediction in set_init_score
23
24
ptrain <- predict(bst, agaricus.train$data, rawscore = TRUE)
ptest  <- predict(bst, agaricus.test$data, rawscore = TRUE)
Guolin Ke's avatar
Guolin Ke committed
25
26
27
28
29
30

# set the init_score property of dtrain and dtest
# base margin is the base prediction we will boost from
setinfo(dtrain, "init_score", ptrain)
setinfo(dtest, "init_score", ptest)

31
32
33
34
35
print("This is result of boost from initial prediction")
bst <- lgb.train(params = param,
                 data = dtrain,
                 nrounds = 5,
                 valids = valids)