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([
... [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) |
返回每個樣本到決策邊界的每個樣本的距離。 |
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 估算器實例。 |