Implementation of Multivariate Adaptive Regression Splines
mlr_learners_regr.earth.Rd
This is an alternative implementation of MARS (Multivariate Adaptive Regression Splines). MARS is trademarked and thus not used as the name. The name "earth" stands for "Enhanced Adaptive Regression Through Hinges".
Calls earth::earth()
from earth.
Meta Information
Task type: “regr”
Predict Types: “response”, “se”
Feature Types: “integer”, “numeric”, “factor”
Required Packages: mlr3, mlr3extralearners, earth
Parameters
Id | Type | Default | Levels | Range |
wp | untyped | NULL | - | |
offset | untyped | NULL | - | |
keepxy | logical | FALSE | TRUE, FALSE | - |
trace | character | 0 | 0, .3, .5, 1, 2, 3, 4, 5 | - |
degree | integer | 1 | \([1, \infty)\) | |
penalty | numeric | 2 | \([-1, \infty)\) | |
nk | untyped | NULL | - | |
thresh | numeric | 0.001 | \((-\infty, \infty)\) | |
minspan | numeric | 0 | \([0, \infty)\) | |
endspan | numeric | 0 | \([0, \infty)\) | |
newvar.penalty | numeric | 0 | \([0, \infty)\) | |
fast.k | integer | 20 | \([0, \infty)\) | |
fast.beta | integer | 1 | \([0, 1]\) | |
linpreds | untyped | FALSE | - | |
allowed | untyped | - | - | |
pmethod | character | backward | backward, none, exhaustive, forward, seqrep, cv | - |
nprune | integer | - | \([0, \infty)\) | |
nfold | integer | 0 | \([0, \infty)\) | |
ncross | integer | 1 | \([0, \infty)\) | |
stratify | logical | TRUE | TRUE, FALSE | - |
varmod.method | character | none | none, const, lm, rlm, earth, gam, power, power0, x.lm, x.rlm, ... | - |
varmod.exponent | numeric | 1 | \((-\infty, \infty)\) | |
varmod.conv | numeric | 1 | \([0, 1]\) | |
varmod.clamp | numeric | 0.1 | \((-\infty, \infty)\) | |
varmod.minspan | numeric | -3 | \((-\infty, \infty)\) | |
Scale.y | logical | FALSE | TRUE, FALSE | - |
Adjust.endspan | numeric | 2 | \((-\infty, \infty)\) | |
Auto.linpreds | logical | TRUE | TRUE, FALSE | - |
Force.weights | logical | FALSE | TRUE, FALSE | - |
Use.beta.cache | logical | TRUE | TRUE, FALSE | - |
Force.xtx.prune | logical | FALSE | TRUE, FALSE | - |
Get.leverages | logical | TRUE | TRUE, FALSE | - |
Exhaustive.tol | numeric | 1e-10 | \((-\infty, \infty)\) |
References
Milborrow, Stephen, Hastie, T, Tibshirani, R (2014). “Earth: multivariate adaptive regression spline models.” R package version, 3(7).
Friedman, H J (1991). “Multivariate adaptive regression splines.” The annals of statistics, 19(1), 1–67.
See also
as.data.table(mlr_learners)
for a table of available Learners in the running session (depending on the loaded packages).Chapter in the mlr3book: https://mlr3book.mlr-org.com/basics.html#learners
mlr3learners for a selection of recommended learners.
mlr3cluster for unsupervised clustering learners.
mlr3pipelines to combine learners with pre- and postprocessing steps.
mlr3tuning for tuning of hyperparameters, mlr3tuningspaces for established default tuning spaces.
Super classes
mlr3::Learner
-> mlr3::LearnerRegr
-> LearnerRegrEarth
Examples
# Define the Learner
learner = mlr3::lrn("regr.earth")
print(learner)
#> <LearnerRegrEarth:regr.earth>: Multivariate Adaptive Regression Splines
#> * Model: -
#> * Parameters: list()
#> * Packages: mlr3, mlr3extralearners, earth
#> * Predict Types: [response], se
#> * Feature Types: integer, numeric, factor
#> * Properties: weights
# 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)
#> Selected 4 of 10 terms, and 2 of 10 predictors
#> Termination condition: GRSq -Inf at 10 terms
#> Importance: hp, wt, disp-unused, am-unused, carb-unused, cyl-unused, ...
#> Number of terms at each degree of interaction: 1 3 (additive model)
#> GCV 7.876681 RSS 73.51569 GRSq 0.8283484 RSq 0.9158907
# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)
# Score the predictions
predictions$score()
#> regr.mse
#> 6.819932