RotationForest#

class RotationForest(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, save_transformed_data=False, n_jobs=1, random_state=None)[源代码][源代码]#

一种旋转森林(RotF)向量分类器。

实现了Rodriguez等人(2013)[1]描述的Rotation Forest分类器。构建了一片树的森林,这些树基于使用PCA变换的随机数据部分构建。

旨在作为时间序列数据的基准,并作为基于变换的方法(如 ShapeletTransformClassifier)的基础分类器,此 sktime 实现仅适用于连续属性。

参数:
n_estimatorsint, 默认值=200

为集成模型构建的估计器数量。

min_groupint, 默认值=3

属性子样本组的最小尺寸。

最大组int, 默认值=3

属性子样本组的最大尺寸。

remove_proportionfloat, 默认值=0.5

每个组中要移除的案例比例。

base_estimatorBaseEstimator 或 None, 默认=”None”

集成学习的基估计器。默认情况下,使用sklearn的``DecisionTreeClassifier``,以熵作为分割度量。

time_limit_in_minutesint, 默认=0

时间合同以分钟为单位限制构建时间,覆盖 n_estimators。默认值为 0 表示使用 n_estimators

contract_max_n_estimatorsint, 默认=500

当设置 time_limit_in_minutes 时,要构建的最大估计器数量。

save_transformed_databool, 默认=False

fit 中转换的数据保存在 transformed_data_ 中,以供 _get_train_probs 使用。

n_jobsint, 默认值=1

fitpredict 并行运行的作业数量。-1 表示使用所有处理器。

random_stateint, RandomState 实例或 None, 默认=None

如果 int ,random_state 是随机数生成器使用的种子;如果 RandomState 实例,random_state 是随机数生成器;如果 None ,随机数生成器是 np.random 使用的 RandomState 实例。

属性:
classes_列表

训练集中的唯一类别标签。

n_classes_整数

训练集中唯一类别的数量。

n_instances_整数

训练集中训练案例的数量。

n_atts_整数

训练集中的属性数量。

transformed_data_形状为 (n_estimators) 的 ndarray 列表

所有分类器的转换训练数据集。仅当 save_transformed_dataTrue 时保存。

estimators_BaseEstimator 的形状列表 (n_estimators)

在拟合中训练的估计器集合。

参见

ShapeletTransformClassifier

基于形状的分类器使用旋转森林。

注释

对于Java版本,请参见 tsml

参考文献

[1]

Rodriguez, Juan José, Ludmila I. Kuncheva, 和 Carlos J. Alonso. “旋转森林:一种新的分类器集成方法.” IEEE 模式分析与机器智能交易 28.10 (2006).

[2]

Bagnall, A., 等人。“旋转森林是处理连续特征问题的最佳分类器吗?” arXiv 预印本 arXiv:1809.06705 (2018)。

示例

>>> from sktime.classification.sklearn import RotationForest
>>> from sktime.datasets import load_unit_test
>>> from sktime.datatypes._panel._convert import from_nested_to_3d_numpy
>>> X_train, y_train = load_unit_test(split="train", return_X_y=True)
>>> X_test, y_test = load_unit_test(split="test", return_X_y=True)
>>> X_train = from_nested_to_3d_numpy(X_train)
>>> X_test = from_nested_to_3d_numpy(X_test)
>>> clf = RotationForest(n_estimators=10)
>>> clf.fit(X_train, y_train)
RotationForest(...)
>>> y_pred = clf.predict(X_test)

方法

fit(X, y)

在案例 (X,y) 上拟合一组树,其中 y 是目标变量。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估计器的参数。

predict(X)

预测X中的所有情况。

predict_proba(X)

X 中所有案例的每个类别的概率估计。

set_params(**params)

设置此估计器的参数。

fit(X, y)[源代码][源代码]#

在案例 (X,y) 上拟合一组树,其中 y 是目标变量。

参数:
X2d ndarray 或 DataFrame,形状为 [n_instances, n_attributes]

训练数据。

y类数组, 形状 = [n_instances]

类别标签。

返回:
自身

自我引用。

注释

通过创建一个拟合模型来改变状态,该模型更新以“_”结尾的属性。

predict(X)[源代码][源代码]#

预测X中的所有情况。基于 predict_proba 构建。

参数:
X2d ndarray 或 DataFrame,形状为 [n_instances, n_attributes]

用于进行预测的数据。

返回:
y类数组, 形状 = [n_instances]

预测的类别标签。

predict_proba(X)[源代码][源代码]#

X 中所有案例的每个类别的概率估计。

参数:
X2d ndarray 或 DataFrame,形状为 [n_instances, n_attributes]

用于进行预测的数据。

返回:
y : 类似数组, 形状 = [n_instances, n_classes_]类数组,形状 = [n_实例,]

使用 classes_ 中的顺序预测的概率。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

返回:
路由MetadataRequest

一个封装了路由信息的 MetadataRequest

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
深度bool, 默认=True

如果为真,将返回此估计器及其包含的作为估计器的子对象的参数。

返回:
参数dict

参数名称映射到它们的值。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如 Pipeline)。后者具有 <component>__<parameter> 形式的参数,因此可以更新嵌套对象的每个组件。

参数:
**参数dict

估计器参数。

返回:
self估计器实例

估计器实例。