RotationForestRegressor

class RotationForestRegressor(n_estimators=200, min_group=3, max_group=3, remove_proportion=0.5, base_estimator=None, time_limit_in_minutes=0.0, contract_max_n_estimators=500, n_jobs=1, random_state=None)[source]

A Rotation Forest (RotF) vector regressor.

Implementation of the Rotation Forest regressor described in Rodriguez et al (2013) [1]. Builds a forest of trees build on random portions of the data transformed using PCA.

Intended as a benchmark for time series data and a base regressor for transformation based appraoches such as FreshPRINCERegressor, this aeon implementation only works with continuous attributes.

Parameters:
n_estimatorsint, default=200

Number of estimators to build for the ensemble.

min_groupint, default=3

The minimum size of an attribute subsample group.

max_groupint, default=3

The maximum size of an attribute subsample group.

remove_proportionfloat, default=0.5

The proportion of cases to be removed per group.

base_estimatorBaseEstimator or None, default=”None”

Base estimator for the ensemble. By default, uses the sklearn DecisionTreeRegressor using MSE as a splitting measure.

time_limit_in_minutesint, default=0

Time contract to limit build time in minutes, overriding n_estimators. Default of 0 means n_estimators is used.

contract_max_n_estimatorsint, default=500

Max number of estimators to build when time_limit_in_minutes is set.

n_jobsint, default=1

The number of jobs to run in parallel for both fit and predict. -1 means using all processors.

random_stateint, RandomState instance or None, default=None

If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random.

Attributes:
n_cases_int

The number of train cases in the training set.

n_atts_int

The number of attributes in the training set.

estimators_list of shape (n_estimators) of BaseEstimator

The collections of estimators trained in fit.

References

[1]

Rodriguez, Juan José, Ludmila I. Kuncheva, and Carlos J. Alonso. “Rotation forest: A new classifier ensemble method.” IEEE transactions on pattern analysis and machine intelligence 28.10 (2006).

[2]

Bagnall, A., et al. “Is rotation forest the best classifier for problems with continuous features?.” arXiv preprint arXiv:1809.06705 (2018).

Examples

>>> from aeon.regression.sklearn import RotationForestRegressor
>>> from aeon.testing.data_generation import make_example_2d_numpy
>>> X, y = make_example_2d_numpy(n_cases=10, n_timepoints=12,
...                              regression_target=True, random_state=0)
>>> reg = RotationForestRegressor(n_estimators=10)
>>> reg.fit(X, y)
RotationForestRegressor(n_estimators=10)
>>> reg.predict(X)
array([0.7252543 , 1.50132442, 0.95608366, 1.64399016, 0.42385504,
       0.60639322, 1.01919317, 1.30157483, 1.66017354, 0.2900776 ])

Methods

fit(X, y)

Fit a forest of trees on cases (X,y), where y is the target variable.

get_metadata_routing()

Get metadata routing of this object.

get_params([deep])

Get parameters for this estimator.

predict(X)

Predict for all cases in X.

set_params(**params)

Set the parameters of this estimator.

fit_predict

fit(X, y)[source]

Fit a forest of trees on cases (X,y), where y is the target variable.

Parameters:
X2d ndarray or DataFrame of shape = [n_cases, n_attributes]

The training data.

yarray-like, shape = [n_cases]

The output values.

Returns:
self

Reference to self.

Notes

Changes state by creating a fitted model that updates attributes ending in “_”.

predict(X) ndarray[source]

Predict for all cases in X.

Parameters:
X2d ndarray or DataFrame of shape = [n_cases, n_attributes]

The data to make predictions for.

Returns:
yarray-like, shape = [n_cases]

Predicted output values.

get_metadata_routing()[source]

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:
routingMetadataRequest

A MetadataRequest encapsulating routing information.

get_params(deep=True)[source]

Get parameters for this estimator.

Parameters:
deepbool, default=True

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:
paramsdict

Parameter names mapped to their values.

set_params(**params)[source]

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:
**paramsdict

Estimator parameters.

Returns:
selfestimator instance

Estimator instance.