Skip to contents

Rule-based model that is an extension of Quinlan's M5 model tree. Each tree contains linear regression models at the terminal leaves. Calls Cubist::cubist() from Cubist.

Dictionary

This Learner can be instantiated via lrn():

lrn("regr.cubist")

Meta Information

  • Task type: “regr”

  • Predict Types: “response”

  • Feature Types: “integer”, “numeric”, “character”, “factor”, “ordered”

  • Required Packages: mlr3, mlr3extralearners, Cubist

Parameters

IdTypeDefaultLevelsRange
committeesinteger-\([1, 100]\)
unbiasedlogicalFALSETRUE, FALSE-
rulesinteger100\([1, \infty)\)
extrapolationnumeric100\([0, 100]\)
sampleinteger0\([0, \infty)\)
seedinteger-\((-\infty, \infty)\)
labeluntyped"outcome"-
neighborsinteger-\([0, 9]\)

References

Quinlan, R J, others (1992). “Learning with continuous classes.” In 5th Australian joint conference on artificial intelligence, volume 92, 343–348. World Scientific.

Quinlan, Ross J (1993). “Combining instance-based and model-based learning.” In Proceedings of the tenth international conference on machine learning, 236–243.

See also

Author

sumny

Super classes

mlr3::Learner -> mlr3::LearnerRegr -> LearnerRegrCubist

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerRegrCubist$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner
learner = mlr3::lrn("regr.cubist")
print(learner)
#> <LearnerRegrCubist:regr.cubist>: Rule-based model
#> * Model: -
#> * Parameters: committees=1, neighbors=0
#> * Packages: mlr3, mlr3extralearners, Cubist
#> * Predict Types:  [response]
#> * Feature Types: integer, numeric, character, factor, ordered
#> * Properties: -

# Define a Task
task = mlr3::tsk("mtcars")

# Create train and test set
ids = mlr3::partition(task)

# Train the learner on the training ids
learner$train(task, row_ids = ids$train)

print(learner$model)
#> 
#> Call:
#> cubist.default(x = x, y = y, committees =
#>  self$param_set$values$committees, control = control, weights = if
#>  ("weights" %in% task$properties) task$weights$weight else NULL)
#> 
#> Number of samples: 21 
#> Number of predictors: 10 
#> 
#> Number of committees: 1 
#> Number of rules: 1 
#> 


# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)

# Score the predictions
predictions$score()
#> regr.mse 
#> 6.562084