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