validate_decomposition: Validate decomposition of gbm prediction

Description Usage Arguments Examples

View source: R/validate_decomposition.R

Description

Compare decomposed prediction to the predicted value returned from predict.gbm. Predictions are compared up to and including every tree in the model (i.e. comparisons are made up to and including 1st, 2nd, ..., nth trees).

Usage

1
validate_decomposition(gbm, prediction_row, n_trees = NULL)

Arguments

gbm

gbm.object to predict with

prediction_row

single row data.frame to predict and the decompose into feature contributions

n_trees

the number of trees to use in generating the prediction for the given row. Default NULL uses all trees in the model.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
N <- 1000
X1 <- runif(N)
X2 <- 2*runif(N)
X3 <- ordered(sample(letters[1:4],N,replace=TRUE),levels=letters[4:1])
X4 <- factor(sample(letters[1:6],N,replace=TRUE))
X5 <- factor(sample(letters[1:3],N,replace=TRUE))
X6 <- 3*runif(N) 
mu <- c(-1,0,1,2)[as.numeric(X3)]

SNR <- 10 # signal-to-noise ratio
Y <- X1**1.5 + 2 * (X2**.5) + mu
sigma <- sqrt(var(Y)/SNR)
Y <- Y + rnorm(N,0,sigma)

# introduce some missing values
X1[sample(1:N,size=500)] <- NA
X4[sample(1:N,size=300)] <- NA

data <- data.frame(Y=Y,X1=X1,X2=X2,X3=X3,X4=X4,X5=X5,X6=X6)

# fit initial model
gbm1 <- gbm(Y~X1+X2+X3+X4+X5+X6,        
           data=data,                  
           var.monotone=c(0,0,0,0,0,0),
           distribution="gaussian",   
           n.trees=1000,     
           shrinkage=0.05,  
           interaction.depth=3,
           bag.fraction = 0.5,
           train.fraction = 0.5)

validate_decomposition(gbm1, data[1, ])

richardangell/GbmExplainR documentation built on May 22, 2019, 12:54 p.m.