当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。