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


Python sklearn VotingClassifier用法及代碼示例


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

用法:

class sklearn.ensemble.VotingClassifier(estimators, *, voting='hard', weights=None, n_jobs=None, flatten_transform=True, verbose=False)

未擬合估計器的軟投票/多數規則分類器。

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

參數

estimators(str, estimator) 元組列表

VotingClassifier 上調用 fit 方法將適合將存儲在類屬性 self.estimators_ 中的那些原始估計器的克隆。可以使用 set_params 將估計器設置為 'drop'

voting{‘hard’, ‘soft’},默認='硬'

如果‘hard’,使用預測的類標簽進行多數規則投票。否則,如果 ‘soft’,則根據預測概率之和的 argmax 預測類標簽,推薦用於 well-calibrated 分類器的集合。

weights形狀類似數組 (n_classifiers,),默認=無

權重序列(floatint)在平均之前對預測的類標簽(hard 投票)或類概率(soft 投票)的出現進行加權。如果 None 使用統一權重。

n_jobs整數,默認=無

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

flatten_transform布爾,默認=真

僅當voting='soft'時影響變換輸出的形狀如果voting='soft'且flatten_transform=True,則transform方法返回形狀為(n_samples,n_classifiers * n_classes)的矩陣。如果flatten_transform=False,則返回 (n_classifiers, n_samples, n_classes)。

verbose布爾,默認=假

如果為 True,則在擬合完成時將打印經過的時間。

屬性

estimators_分類器列表

estimators 中定義的不是 ‘drop’ 的擬合 sub-estimators 的集合。

named_estimators_sklearn.utils.Bunch

按名稱訪問任何適合的sub-estimators 的屬性。

le_sklearn.preprocessing.LabelEncoder

Transformer 用於在擬合期間對標簽進行編碼,在預測期間用於解碼。

classes_ndarray 形狀 (n_classes,)

類標簽。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當基礎估計器在合適時公開此類屬性時才定義。 .. 版本添加::1.0

例子

>>> import numpy as np
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.naive_bayes import GaussianNB
>>> from sklearn.ensemble import RandomForestClassifier, VotingClassifier
>>> clf1 = LogisticRegression(multi_class='multinomial', random_state=1)
>>> clf2 = RandomForestClassifier(n_estimators=50, random_state=1)
>>> clf3 = GaussianNB()
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> eclf1 = VotingClassifier(estimators=[
...         ('lr', clf1), ('rf', clf2), ('gnb', clf3)], voting='hard')
>>> eclf1 = eclf1.fit(X, y)
>>> print(eclf1.predict(X))
[1 1 1 2 2 2]
>>> np.array_equal(eclf1.named_estimators_.lr.predict(X),
...                eclf1.named_estimators_['lr'].predict(X))
True
>>> eclf2 = VotingClassifier(estimators=[
...         ('lr', clf1), ('rf', clf2), ('gnb', clf3)],
...         voting='soft')
>>> eclf2 = eclf2.fit(X, y)
>>> print(eclf2.predict(X))
[1 1 1 2 2 2]
>>> eclf3 = VotingClassifier(estimators=[
...        ('lr', clf1), ('rf', clf2), ('gnb', clf3)],
...        voting='soft', weights=[2,1,1],
...        flatten_transform=True)
>>> eclf3 = eclf3.fit(X, y)
>>> print(eclf3.predict(X))
[1 1 1 2 2 2]
>>> print(eclf3.transform(X).shape)
(6, 6)

相關用法


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