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


Python sklearn ClassifierChain用法及代碼示例


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

用法:

class sklearn.multioutput.ClassifierChain(base_estimator, *, order=None, cv=None, random_state=None)

將二元分類器排列成鏈的多標簽模型。

每個模型使用提供給模型的所有可用特征加上鏈中較早模型的預測,按照鏈指定的順序進行預測。

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

參數

base_estimator估計器

構建分類器鏈的基本估計器。

order形狀類似數組 (n_outputs,) 或 ‘random’,默認=無

如果 None ,則順序將由標簽矩陣 Y 中的列順序決定:

order = [0, 1, 2, ..., Y.shape[1] - 1]

可以通過提供整數列表來顯式設置鏈的順序。例如,對於長度為 5 的鏈:

order = [1, 3, 2, 4, 0]

意味著鏈中的第一個模型將對 Y 矩陣中的第 1 列進行預測,第二個模型將對第 3 列進行預測,依此類推。

如果 order 是random,將使用隨機排序。

cvint,交叉驗證生成器或可迭代的,默認=無

確定是否對鏈中先前估計器的結果使用交叉驗證的預測或真實標簽。 cv 的可能輸入是:

  • 無,在擬合時使用真實標簽,
  • 整數,指定(分層)KFold 中的折疊數,
  • CV分配器,
  • 一個可迭代的 yield (train, test) 拆分為索引數組。
random_stateint、RandomState 實例或無,可選(默認=無)

如果 order='random' ,則確定鏈順序的隨機數生成。此外,它還控製每次鏈接迭代時每個 base_estimator 給出的隨機種子。因此,僅當 base_estimator 公開 random_state 時才使用它。傳遞 int 以在多個函數調用之間實現可重現的輸出。請參閱術語表。

屬性

classes_列表

長度為 len(estimators_) 的數組列表,其中包含鏈中每個估計器的類標簽。

estimators_列表

base_estimator 的克隆列表。

order_列表

分類器鏈中標簽的順序。

n_features_in_int

擬合期間看到的特征數。僅當底層 base_estimator 在合適時公開此類屬性時才定義。

feature_names_in_ndarray 形狀(n_features_in_,)

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

參考

Jesse Read、Bernhard Pfahringer、Geoff Holmes、Eibe Frank,“用於多標簽分類的分類器鏈”,2009 年。

例子

>>> from sklearn.datasets import make_multilabel_classification
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.multioutput import ClassifierChain
>>> X, Y = make_multilabel_classification(
...    n_samples=12, n_classes=3, random_state=0
... )
>>> X_train, X_test, Y_train, Y_test = train_test_split(
...    X, Y, random_state=0
... )
>>> base_lr = LogisticRegression(solver='lbfgs', random_state=0)
>>> chain = ClassifierChain(base_lr, order='random', random_state=0)
>>> chain.fit(X_train, Y_train).predict(X_test)
array([[1., 1., 0.],
       [1., 0., 0.],
       [0., 1., 0.]])
>>> chain.predict_proba(X_test)
array([[0.8387..., 0.9431..., 0.4576...],
       [0.8878..., 0.3684..., 0.2640...],
       [0.0321..., 0.9935..., 0.0625...]])

相關用法


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