BaselearnerPolynomial | R Documentation |
[BaselearnerPolynomial]
creates a polynomial base learner object.
The base learner takes one feature and calculates the polynomials (with
intercept) 1 + x + x^2 + \dots + x^d
for a given degree d
.
data_source |
(InMemoryData) |
blearner_type |
( |
degree |
( |
intercept |
( |
bin_root |
( |
S4 object.
BaselearnerPolynomial$new(data_source, list(degree, intercept, bin_root)) BaselearnerPolynomial$new(data_source, blearner_type, list(degree, intercept, bin_root))
This class doesn't contain public fields.
$summarizeFactory()
: () -> ()
$transfromData(newdata)
: list(InMemoryData) -> matrix()
$getMeta()
: () -> list()
$getData()
: () -> matrix()
$getDF()
: () -> integer()
$getPenalty()
: () -> numeric()
$getPenaltyMat()
: () -> matrix()
$getFeatureName()
: () -> character()
$getModelName()
: () -> character()
$getBaselearnerId()
: () -> character()
# Sample data:
x = runif(100)
y = 1 + 2*x + rnorm(100, 0, 0.2)
dat = data.frame(x, y)
# S4 wrapper
# Create new data object, a matrix is required as input:
data_mat = cbind(x)
data_source = InMemoryData$new(data_mat, "my_data_name")
# Create new linear base learner factory:
bl_lin = BaselearnerPolynomial$new(data_source,
list(degree = 1))
bl_cub = BaselearnerPolynomial$new(data_source,
list(intercept = FALSE, degree = 3, bin_root = 2))
# Get the transformed data:
head(bl_lin$getData())
head(bl_cub$getData())
# Summarize factory:
bl_lin$summarizeFactory()
# Transform "new data":
newdata = list(InMemoryData$new(cbind(rnorm(5)), "my_data_name"))
bl_lin$transformData(newdata)
bl_cub$transformData(newdata)
# R6 wrapper
cboost_lin = Compboost$new(dat, "y")
cboost_lin$addBaselearner("x", "lin", BaselearnerPolynomial, degree = 1)
cboost_lin$train(100, 0)
cboost_cub = Compboost$new(dat, "y")
cboost_cub$addBaselearner("x", "cubic", BaselearnerPolynomial,
intercept = FALSE, degree = 3, bin_root = 2)
cboost_cub$train(100, 0)
# Access base learner directly from the API (n = sqrt(100) = 10 with binning):
head(cboost_lin$baselearner_list$x_lin$factory$getData())
cboost_cub$baselearner_list$x_cubic$factory$getData()
gg_lin = plotPEUni(cboost_lin, "x")
gg_cub = plotPEUni(cboost_cub, "x")
library(ggplot2)
library(patchwork)
(gg_lin | gg_cub) &
geom_point(data = dat, aes(x = x, y = y - c(cboost_lin$offset)), alpha = 0.2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.