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
fit
和predict
并行运行的作业数量。-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_data
为True
时保存。- 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_params
([deep])获取此估计器的参数。
predict
(X)预测 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对象
更新后的对象。