當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。