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


Python sklearn OneVsOneClassifier用法及代碼示例


本文簡要介紹python語言中 sklearn.multiclass.OneVsOneClassifier 的用法。

用法:

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

One-vs-one 多類策略。

該策略包括為每個類對擬合一個分類器。在預測時,選擇得票最多的類。由於它需要擬合 n_classes * (n_classes - 1) / 2 分類器,因此該方法通常比 one-vs-the-rest 慢,因為它的 O(n_classes^2) 複雜度。但是,這種方法可能對諸如內核算法之類的算法有利,這些算法不能很好地與 n_samples 一起擴展。這是因為每個單獨的學習問題隻涉及數據的一小部分,而使用one-vs-the-rest,使用完整的數據集n_classes 次。

在用戶指南中閱讀更多信息。

參數

estimator估計器對象

實現擬合的估計器對象和decision_function 或predict_proba 之一。

n_jobs整數,默認=無

用於計算的作業數量:n_classes * ( n_classes - 1) / 2 OVO 問題是並行計算的。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有處理器。有關詳細信息,請參閱詞匯表。

屬性

estimators_n_classes * (n_classes - 1) / 2 估計器列表

用於預測的估計器。

classes_numpy 形狀數組 [n_classes]

包含標簽的數組。

n_classes_int

類數。

pairwise_indices_列表,長度 = len(estimators_)None

訓練估計器時使用的樣本索引。 Noneestimatorpairwise 標簽為 False 時。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

例子

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

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.multiclass.OneVsOneClassifier。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。