当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn OneVsRestClassifier用法及代码示例


本文简要介绍python语言中 sklearn.multiclass.OneVsRestClassifier 的用法。

用法:

class sklearn.multiclass.OneVsRestClassifier(estimator, *, n_jobs=None)

One-vs-the-rest (OvR) 多类策略。

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

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

在用户指南中阅读更多信息。

参数

estimator估计器对象

实现拟合的估计器对象和decision_function 或predict_proba 之一。

n_jobs整数,默认=无

用于计算的作业数量:n_classes one-vs-rest 问题是并行计算的。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。

属性

estimators_n_classes 估计器列表

用于预测的估计器。

coef_ndarray 形状 (1, n_features) 或 (n_classes, n_features)

已弃用:属性 coef_ 在 0.24 版本中已弃用,并将在 1.1 中删除(重命名为 0.26)。

intercept_ndarray 形状 (1, 1) 或 (n_classes, 1)

已弃用:属性 intercept_ 在 0.24 版本中已弃用,并将在 1.1 中删除(重命名为 0.26)。

classes_数组,形状 = [n_classes]

类标签。

n_classes_int

类数。

label_binarizer_LabelBinarizer 对象

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

multilabel_布尔值

这是否是一个多标签分类器。

n_features_in_int

拟合期间看到的特征数。仅当基础估计器在合适时公开此类属性时才定义。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当基础估计器在合适时公开此类属性时才定义。

例子

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

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.multiclass.OneVsRestClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。