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)[source]#

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

实现了 Rodriguez 等人 (2013) [1] 中描述的旋转森林分类器。该分类器构建了一个基于使用 PCA 转换的随机数据部分的树的森林。

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

参数:
n_estimators整数, 默认值=200

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

min_group整数, 默认值=3

属性子样本组的最小大小。

max_group整数, 默认值=3

属性子样本组的最大大小。

remove_proportion浮点数, 默认值=0.5

每组中要移除的样本比例。

base_estimatorBaseEstimator 或 None, 默认值=”None”

集成模型的基础估计器。默认情况下,使用 sklearn 的 DecisionTreeClassifier,以熵作为分裂度量。

time_limit_in_minutes整数, 默认值=0

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

contract_max_n_estimators整数, 默认值=500

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

save_transformed_data布尔值, 默认值=False

fit 阶段转换后的数据保存在 transformed_data_ 中,以便在 _get_train_probs 中使用。

n_jobs整数, 默认值=1

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

random_state整数, 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_形状为 (n_estimators) 的 BaseEstimator 列表

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

另请参阅

ShapeletTransformClassifier

一种使用旋转森林的 Shapelet 分类器。

注意

Java 版本请参见 tsml

参考文献

[1]

Rodriguez, Juan José, Ludmila I. Kuncheva, and Carlos J. Alonso. “旋转森林:一种新的分类器集成方法。” IEEE transactions on pattern analysis and machine intelligence 28.10 (2006)。

[2]

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

示例

>>> from sklearn.datasets import load_iris
>>> from sklearn.model_selection import train_test_split
>>> from sktime.classification.sklearn import RotationForest
>>>
>>> X, y = load_iris(return_X_y=True, as_frame=True)
>>> X_train, X_test, y_train, y_test = train_test_split(X, y)
>>>
>>> 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 中所有样本的每个类别的概率估计。

score(X, y[, sample_weight])

返回给定测试数据和标签的平均准确率。

set_params(**params)

设置此估计器的参数。

set_score_request(*[, sample_weight])

请求传递给 score 方法的元数据。

fit(X, y)[source]#

在样本 (X,y) 上拟合树的森林,其中 y 是目标变量。

参数:
X形状为 [n_instances, n_attributes] 的二维 ndarray 或 DataFrame

训练数据。

y类似数组的对象, 形状 = [n_instances]

类别标签。

返回:
self

对象的引用。

注意

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

predict(X)[source]#

预测 X 中所有样本的结果。基于 predict_proba 构建。

参数:
X形状为 [n_instances, n_attributes] 的二维 ndarray 或 DataFrame

用于进行预测的数据。

返回:
y类似数组的对象, 形状 = [n_instances]

预测的类别标签。

predict_proba(X)[source]#

X 中所有样本的每个类别的概率估计。

参数:
X形状为 [n_instances, n_attributes] 的二维 ndarray 或 DataFrame

用于进行预测的数据。

返回:
y类似数组的对象, 形状 = [n_instances, n_classes_]

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

get_metadata_routing()[source]#

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

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

返回:
routingMetadataRequest

一个封装了路由信息的 MetadataRequest

get_params(deep=True)[source]#

获取此估计器的参数。

参数:
deep布尔值, 默认值=True

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

返回:
params字典

参数名称与其值的映射。

score(X, y, sample_weight=None)[source]#

返回给定测试数据和标签的平均准确率。

在多标签分类中,这是子集准确率,这是一个严格的指标,因为它要求每个样本的每个标签集都正确预测。

参数:
X形状为 (n_samples, n_features) 的类似数组的对象

测试样本。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类似数组的对象

X 的真实标签。

sample_weight形状为 (n_samples,) 的类似数组的对象, 默认值=None

样本权重。

返回:
score浮点数

self.predict(X) 相对于 y 的平均准确率。

set_params(**params)[source]#

设置此估计器的参数。

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

参数:
**params字典

估计器参数。

返回:
self估计器实例

估计器实例。

set_score_request(*, sample_weight: 布尔值 | None | 字符串 = '$UNCHANGED$') RotationForest[source]#

请求传递给 score 方法的元数据。

请注意,此方法仅在 enable_metadata_routing=True 时相关(参见 sklearn.set_config)。请参阅 用户指南 了解路由机制的工作原理。

每个参数的选项如下:

  • True:请求元数据,如果提供则传递给 score。如果未提供元数据,则忽略请求。

  • False:不请求元数据,元估计器不会将其传递给 score

  • None:不请求元数据,如果用户提供元数据,元估计器将引发错误。

  • str:元数据应使用此给定别名而不是原始名称传递给元估计器。

默认值 (sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求,而不更改其他参数的请求。

添加于版本 1.3。

注意

此方法仅当此估计器用作元估计器的子估计器时才相关,例如在 Pipeline 内部使用。否则它不起作用。

参数:
sample_weight字符串, True, False, 或 None, 默认值=sklearn.utils.metadata_routing.UNCHANGED

score 方法中 sample_weight 参数的元数据路由。

返回:
self对象

更新后的对象。