BaselearnerCustom: Custom base learner using 'R' functions.

BaselearnerCustomR Documentation

Custom base learner using R functions.

Description

This class defines a custom base learner factory by passing R functions for instantiation, fitting, and predicting.

Arguments

data_source

(InMemoryData)
Uninitialized data object used to store the meta data. Note: At the moment, just in memory storing is supported, see ?InMemorydata for details.

instantiate_fun

(function)
R function to transform the source data.

train_fun

(function)
R function to train the base learner on the target data.

predict_fun

(function)
R function to predict on the object returned by train_fun.

param_fun

(function)
R function to extract the parameter of the object returned by train.

Format

S4 object.

Usage

BaselearnerCustom$new(data_source, list(instantiate_fun,
  train_fun, predict_fun, param_fun))

Details

The function must have the following structure:

instantiateData(X) { ... return (X_trafo) } With a matrix argument X and a matrix as return object.

train(y, X) { ... return (SEXP) } With a vector argument y and a matrix argument X. The target data is used in X while y contains the response. The function can return any R object which is stored within a SEXP.

predict(model, newdata) { ... return (prediction) } The returned object of the train function is passed to the model argument while newdata contains a new matrix used for predicting.

extractParameter() { ... return (parameters) } Again, model contains the object returned by train. The returned object must be a matrix containing the estimated parameter. If no parameter should be estimated one can return NA.

For an example see the Examples.

Fields

This class doesn't contain public fields.

Methods

  • ⁠$summarizeFactory()⁠: ⁠() -> ()⁠

  • ⁠$transfromData(newdata)⁠: list(InMemoryData) -> matrix()

  • ⁠$getMeta()⁠: ⁠() -> list()⁠

Inherited methods from Baselearner

  • ⁠$getData()⁠: ⁠() -> matrix()⁠

  • ⁠$getDF()⁠: ⁠() -> integer()⁠

  • ⁠$getPenalty()⁠: ⁠() -> numeric()⁠

  • ⁠$getPenaltyMat()⁠: ⁠() -> matrix()⁠

  • ⁠$getFeatureName()⁠: ⁠() -> character()⁠

  • ⁠$getModelName()⁠: ⁠() -> character()⁠

  • ⁠$getBaselearnerId()⁠: ⁠() -> character()⁠

Examples

# Sample data:
data_mat = cbind(1, 1:10)
y = 2 + 3 * 1:10

# Create new data object:
data_source = InMemoryData$new(data_mat, "my_data_name")

instantiateDataFun = function (X) {
  return(X)
}
# Ordinary least squares estimator:
trainFun = function (y, X) {
  return(solve(t(X) %*% X) %*% t(X) %*% y)
}
predictFun = function (model, newdata) {
  return(as.matrix(newdata %*% model))
}
extractParameter = function (model) {
  return(as.matrix(model))
}

# Create new custom linear base learner factory:
custom_lin_factory = BaselearnerCustom$new(data_source,
  list(instantiate_fun = instantiateDataFun, train_fun = trainFun,
    predict_fun = predictFun, param_fun = extractParameter))

# Get the transformed data:
custom_lin_factory$getData()

# Summarize factory:
custom_lin_factory$summarizeFactory()


schalkdaniel/compboost documentation built on April 15, 2023, 9:03 p.m.