sklearn.multiclass.OneVsRestClassifier?

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

[源碼]

一對一(OvR)的多類/多標簽策略

也稱為“一對多”,此策略包括為每個類配備一個分類器。對于每個分類器,該分類將與所有其他分類進行擬合。除了其計算效率(僅n_classes 需要分類器)之外,這種方法的一個優點是其可解釋性。由于每個類別僅由一個和一個分類器表示,因此可以通過檢查其對應的分類器來獲取有關該類別的知識。這是用于多類分類的最常用策略,并且是合理的默認選擇。

此策略還可以用于多標簽學習,例如,通過擬合2d矩陣(如果樣本i具有標簽j,則單元[i,j]為1,否則為0),將分類器用于預測多個標簽。

在多標簽學習文獻中,OvR也被稱為二進制相關方法。

用戶指南中閱讀更多內容。

參數 說明
estimator estimator object
一種實現擬合決策函數(decision_function)預測概率(predict_proba)之一的估計對象。
n_jobs int or None, optional (default=None)
用于計算的數量。None除非joblib.parallel_backend上下文中,否則表示1 。 -1表示使用所有處理器。有關 更多詳細信息,請參見詞匯表
v0.20版中已更改:n_jobs默認從1更改為None
屬性 說明
estimators_ list of n_classes estimators
用于預測的估計量。
classes_ array, shape = [n_classes]
類標簽。
n_classes_ int
類數。
label_binarizer_ LabelBinarizer object
用于將多類標簽轉換為二進制標簽的對象,反之亦然。
multilabel_ boolean
是否是多標簽分類器

實例

>>> import numpy as np
>>> from sklearn.multiclass import OneVsRestClassifier
>>> from sklearn.svm import SVC
>>> X = np.array([
...     [1010],
...     [810],
...     [-55.5],
...     [-5.45.5],
...     [-20-20],
...     [-15-20]
... ])
>>> y = np.array([001122])
>>> clf = OneVsRestClassifier(SVC()).fit(X, y)
>>> clf.predict([[-19-20], [99], [-55]])
array([201])
方法 說明
decision_function(X) 返回每個樣本到決策邊界的每個樣本的距離。
fit(X, y) 擬合基礎估計量。
get_params([deep]) 獲取此估計量的參數。
partial_fit(X, y[, classes]) 部分擬合基礎估計量
predict(X) 使用基礎估計量預測多類別目標。
predict_proba(X) 概率估計。
score(X, y[, sample_weight]) 返回給定測試數據和標簽上的平均準確度。
set_params(**params) 設置此估算量的參數。
__init__(estimator, *, n_jobs=None)

[源碼]

初始化self, 請參閱help(type(self))以獲得準確的說明。

decision_function(X)

[源碼]

返回每個樣本到決策邊界的每個樣本的距離。這只能與實現decision_function方法的估計器一起使用。

參數 說明
X array-like of shape (n_samples, n_features)
返回值 說明
T array-like of shape (n_samples, n_classes)
*在版本0.19中進行了更改:*輸出形狀已更改為(n_samples,)符合scikit-learn二進制分類的約定。
fit(X, y)

[源碼]

擬合基礎估計量。

參數 說明
X (sparse) array-like of shape (n_samples, n_features)
數據。
y (sparse) array-like of shape (n_samples,) or (n_samples, n_classes)
多類別目標。指標矩陣可打開多標簽分類。
返回值
self
get_params(deep=True)

[源碼]

獲取此估計量的參數。

參數 說明
deep bool, default=True
如果為True,則將返回此估算量和作為估算量的所包含子對象的參數。
返回值 說明
params mapping of string to any
參數名稱映射到其值。
property multilabel_

是否是多標簽分類器

partial_fit(X, y, classes=None)

[源碼]

部分擬合基礎估計量

當內存不足以訓練所有數據時應使用。數據塊可以多次迭代傳遞。

參數 說明
X (sparse) array-like of shape (n_samples, n_features)
數據
y (sparse) array-like of shape (n_samples,) or (n_samples, n_classes)
多類別目標。指標矩陣可打開多標簽分類。
classes array, shape (n_classes, )
所有對partial_fit的調用中的類。可以通過獲得np.unique(y_all),其中y_all是整個數據集的目標向量。僅在partial_fit的第一次調用中需要此參數,而在后續調用中可以將其省略。
返回值
self
predict(X)

[源碼]

使用基礎估計量預測多類別目標。

參數 說明
X (sparse) array-like of shape (n_samples, n_features)
數據
返回值 說明
y (sparse) array-like of shape (n_samples,) or (n_samples, n_classes)
預測的多類別目標。
predict_proba(X)

[源碼]

概率估計。

所有類別的返回估算值按類別標簽排序。

請注意,在多標簽情況下,每個樣本可以具有任意數量的標簽。這將返回給定樣本具有相關標簽的邊際概率。例如,兩個標簽都具有90%的概率應用于給定樣品,這是完全一致的。

在單標簽多類情況下,返回矩陣的行總和為1。

參數 說明
X array-like of shape (n_samples, n_features)
返回值 說明
T (sparse) array-like of shape (n_samples, n_classes)
返回模型中每個類的樣本概率,其中類按順序排序self.classes_
score(X, y, sample_weight=None)

[源碼]

返回給定測試數據和標簽上的平均準確度。

在多標簽分類中,這是子集準確性,這是一個苛刻的指標,因為您需要為每個樣本正確預測每個標簽集。

參數 說明
X array-like of shape (n_samples, n_features)
測試樣本
y array-like of shape (n_samples,) or (n_samples, n_outputs)
X的真實標簽。
sample_weight array-like of shape (n_samples,), default=None
樣本權重。
返回值 說明
score float
self.predict(X) wrt. y.的平均準確度。
set_params(**params)

[源碼]

設置此估算器的參數。

該方法適用于簡單的估計器以及嵌套對象(例如 pipelines)。后者具有形式的參數, <component>__<parameter>以便可以更新嵌套對象的每個組件。

參數 說明
**params dict
估算器參數。
返回值 說明
self object
估算器實例。

sklearn.multiclass.OneVsRestClassifier使用實例?