OneVsOneClassifier#

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

一对一的多类策略。

该策略包括为每个类对匹配一个分类器。在预测时,选择获得最多选票的班级。因为它需要合身 n_classes * (n_classes - 1) / 2 分类器中,由于其复杂性为O(n_classes#2),这种方法通常比一对其余方法慢。然而,这种方法对于诸如内核算法等无法很好地扩展的算法可能是有利的 n_samples .这是因为每个单独的学习问题只涉及数据的一小部分,而在一对一的情况下,使用的是完整的数据集 n_classes

阅读更多的 User Guide .

参数:
estimator估计器对象

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

n_jobsint,默认=无

The number of jobs to use for the computation: the n_classes * ( n_classes - 1) / 2 OVO problems are computed in parallel.

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

属性:
estimators_ :列表 n_classes * (n_classes - 1) / 2 估计列表

用于预测的估计器。

classes_麻木的形状阵列 [n_classes]

包含标签的数组。

n_classes_int

班级数量。

pairwise_indices_ :列表,长度= len(estimators_) ,或者 None列表,长度=

训练估计量时使用的样本指数。 Noneestimatorpairwise 标签为False。

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

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

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

参见

OneVsRestClassifier

一对所有多类策略。

OutputCodeClassifier

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

示例

>>> from sklearn.datasets import load_iris
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.multiclass import OneVsOneClassifier
>>> from sklearn.svm import LinearSVC
>>> X, y = load_iris(return_X_y=True)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.33, shuffle=True, random_state=0)
>>> clf = OneVsOneClassifier(
...     LinearSVC(random_state=0)).fit(X_train, y_train)
>>> clf.predict(X_test[:10])
array([2, 1, 0, 2, 0, 2, 0, 1, 1, 1])
decision_function(X)[源代码]#

OneVsOneClassifier的决策功能。

通过将成对分类置信度的标准化和添加到投票来计算样本的决策值,以便在所有类别的投票相等导致平局时消除决策值之间的歧义。

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

输入数据。

返回:
Y形状类似阵列(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,)

多类目标。

**fit_paramsdict

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

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

返回:
self对象

The fitted underlying estimator.

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,)

多类目标。

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中每个样本的最佳类别标签。

这被实现为 argmax(decision_function(X), axis=1) 它将通过预测每个可能类别对的决策结果的估计器返回得票最多的类别的标签。

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

数据

返回:
y麻木的形状阵列 [n_samples]

预测多类目标。

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$') OneVsOneClassifier[源代码]#

请求元数据传递给 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$') OneVsOneClassifier[源代码]#

请求元数据传递给 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对象

更新的对象。