OneVsRestClassifier#

class sklearn.multiclass.OneVsRestClassifier(estimator, *, n_jobs=None, verbose=0)[源代码]#

一对其余(OvR)多类策略。

该策略也称为“一对所有”,包括为每个类匹配一个分类器。对于每个分类器,该类别与所有其他类别进行拟合。除了计算效率(仅 n_classes 需要分类器),这种方法的一个优点是它的可解释性。由于每个类仅由一个分类器表示,因此可以通过检查其对应的分类器来获得关于类的知识。这是多类分类最常用的策略,也是一个公平的默认选择。

OneVsRestClassifier还可用于多标签分类。要使用此功能,请为目标提供指标矩阵 y 打电话时 .fit .换句话说,目标标签应格式化为2D二进制(0/1)矩阵,其中 [i, j] == 1表示样本i中存在标记j。该估计器使用二进制相关性方法来执行多标签分类,这涉及为每个标签独立地训练一个二进制分类器。

阅读更多的 User Guide .

参数:
estimator估计器对象

实现的回归量或分类器 fit .当通过分类器时, decision_function 将优先使用,并将退回到 predict_proba 如果不可用。当回归量通过时, predict 采用了

n_jobsint,默认=无

用于计算的作业数量: n_classes 并行计算一对休息问题。

None 意思是1,除非在a中 joblib.parallel_backend 上下文 -1 意味着使用所有处理器。看到 Glossary 了解更多详细信息。

在 0.20 版本发生变更: n_jobs 默认值从1更改为无

verboseint,默认=0

详细程度(如果非零)将打印进度消息。低于50,输出被发送到stderr。否则,输出将被发送到stdout。消息的频率随着冗长级别的增加而增加,所有迭代报告为10。看到 joblib.Parallel 了解更多详细信息。

Added in version 1.1.

属性:
estimators_ :列表 n_classes 估计列表

用于预测的估计器。

classes_ :数组,形状= [n_classes]数组,形状= [

班级标签。

n_classes_int

班级数量。

label_binarizer_LabelBinarizer对象

对象,用于将多类标签转换为二进制标签,反之亦然。

multilabel_布尔

这是否是多标签分类器。

n_features_in_int

期间看到的功能数量 fit .仅在基础估计器在适合时暴露此类属性时才定义。

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

期间看到的要素的名称 fit .仅在基础估计器在适合时暴露此类属性时才定义。

Added in version 1.0.

参见

OneVsOneClassifier

一对一的多类策略。

OutputCodeClassifier

(错误更正)输出代码多类策略。

sklearn.multioutput.MultiOutputClassifier

扩展多标签分类估计器的替代方法。

sklearn.preprocessing.MultiLabelBinarizer

将可迭代项的可迭代项转换为二进制指标矩阵。

示例

>>> import numpy as np
>>> from sklearn.multiclass import OneVsRestClassifier
>>> from sklearn.svm import SVC
>>> X = np.array([
...     [10, 10],
...     [8, 10],
...     [-5, 5.5],
...     [-5.4, 5.5],
...     [-20, -20],
...     [-15, -20]
... ])
>>> y = np.array([0, 0, 1, 1, 2, 2])
>>> clf = OneVsRestClassifier(SVC()).fit(X, y)
>>> clf.predict([[-19, -20], [9, 9], [-5, 5]])
array([2, 0, 1])
decision_function(X)[源代码]#

OneVsRestClassifier的决策功能。

返回每个样本与每个类别的决策边界的距离。这只能与实现 decision_function

参数:
X形状类似阵列(n_samples,n_features)

输入数据。

返回:
T形状类似于数组(n_samples,n_classes)或(n_samples,) 二元分类。

呼叫结果 decision_function 关于最终估计器。

在 0.19 版本发生变更: 输出形状更改为 (n_samples,) 符合二进制分类的scikit-learn惯例。

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

适合基础估计值。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

数据

y形状(n_samples,)或(n_samples,n_classes)的{类数组,稀疏矩阵}

Multi-class targets. An indicator matrix turns on multilabel classification.

**fit_paramsdict

参数传递给 estimator.fit 每个子估计器的方法。

Added in version 1.4: 仅在以下情况下可用 enable_metadata_routing=True .看到 Metadata Routing User Guide 了解更多详细信息。

返回:
self对象

匹配估计量的实例。

get_metadata_routing()[源代码]#

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

请检查 User Guide 关于路由机制如何工作。

Added in version 1.4.

返回:
routingMetadataRouter

A MetadataRouter 封装路由信息。

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

获取此估计器的参数。

参数:
deep布尔,默认=True

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

返回:
paramsdict

参数名称映射到其值。

partial_fit(X, y, classes=None, **partial_fit_params)[源代码]#

部分适合基本估计量。

当内存无法训练所有数据时,应使用。数据块可以通过多次迭代传递。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

数据

y形状(n_samples,)或(n_samples,n_classes)的{类数组,稀疏矩阵}

Multi-class targets. An indicator matrix turns on multilabel classification.

classes数组,形状(n_classes,)

所有partial_fit调用的类。人士可利用 np.unique(y_all) 其中y_all是整个数据集的目标向量。该参数仅在partial_fit的第一次调用中需要,并且在后续调用中可以省略。

**partial_fit_paramsdict

参数传递给 estimator.partial_fit 每个子估计器的方法。

Added in version 1.4: 仅在以下情况下可用 enable_metadata_routing=True .看到 Metadata Routing User Guide 了解更多详细信息。

返回:
self对象

部分匹配估计量的实例。

predict(X)[源代码]#

使用基本估计量预测多类别目标。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

数据

返回:
y形状(n_samples,)或(n_samples,n_classes)的{类数组,稀疏矩阵}

预测多类目标。

predict_proba(X)[源代码]#

概率估计。

返回的所有类的估计值按类的标签排序。

请注意,在多标签情况下,每个样本可以具有任意数量的标签。这将返回给定样本具有相关标签的边际概率。例如,两个标签都有90%的可能性适用于给定样本,这是完全一致的。

In the single label multiclass case, the rows of the returned matrix sum to 1.

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

输入数据。

返回:
T形状类似阵列(n_samples,n_classes)

返回模型中每个类的样本概率,其中类按其所在位置排序 self.classes_ .

score(X, y, sample_weight=None)[源代码]#

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

在多标签分类中,这是子集准确度,这是一个苛刻的指标,因为您需要为每个样本正确预测每个标签集。

参数:
X形状类似阵列(n_samples,n_features)

测试样本。

y形状的类似阵列(n_samples,)或(n_samples,n_outputs)

真正的标签 X .

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

返回:
score浮子

平均准确度 self.predict(X) w.r.t. y .

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

设置此估计器的参数。

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

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

set_partial_fit_request(*, classes: bool | None | str = '$UNCHANGED$') OneVsRestClassifier[源代码]#

请求元数据传递给 partial_fit

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 partial_fit 如果提供的话。如果未提供元数据,则会忽略请求。

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

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

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

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

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
classes字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 classes 参数 partial_fit .

返回:
self对象

更新的对象。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OneVsRestClassifier[源代码]#

请求元数据传递给 score

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

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

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

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

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

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

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 score .

返回:
self对象

更新的对象。