python 分类 投票_使用python+sklearn实现绘制VotingClassifier的决策边界

在鸢尾花(Iris)数据集的两个特征上绘制VotingClassifier的决策边界。

绘制小型(toy)数据集中第一个样本的分类概率,该个概率首先是由三个不同分类器进行预测,然后这些预测结果通过 VotingClassifier 加权平均得出的。 首先,对三个分类器进行初始化( DecisionTreeClassifier ,  KNeighborsClassifierSVC ),并用权重 [2, 1, 2] 初始化软投票(soft-voting) VotingClassifier ,这意味着计算平均概率时, DecisionTreeClassifierSVC 的预测概率的计算权重是分类器 KNeighborsClassifier 的2倍。
1b29a1500943f3f350a19a062a23cfa4.png
sphx_glr_plot_voting_decision_regions_001
print(__doc__)from itertools import productimport numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.svm import SVCfrom sklearn.ensemble import VotingClassifier# 加载一些样本数据
iris = datasets.load_iris()
X = iris.data[:, [0, 2]]
y = iris.target# 训练分类器
clf1 = DecisionTreeClassifier(max_depth=4)
clf2 = KNeighborsClassifier(n_neighbors=7)
clf3 = SVC(gamma=.1, kernel='rbf', probability=True)
eclf = VotingClassifier(estimators=[('dt', clf1), ('knn', clf2),
                                    ('svc', clf3)],
                        voting='soft', weights=[2, 1, 2])
clf1.fit(X, y)
clf2.fit(X, y)
clf3.fit(X, y)
eclf.fit(X, y)# 绘制决策区域
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.1),
                     np.arange(y_min, y_max, 0.1))
f, axarr = plt.subplots(2, 2, sharex='col', sharey='row', figsize=(10, 8))for idx, clf, tt in zip(product([0, 1], [0, 1]),
                        [clf1, clf2, clf3, eclf],
                        ['Decision Tree (depth=4)', 'KNN (k=7)','Kernel SVM', 'Soft Voting']):
    Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)
    axarr[idx[0], idx[1]].contourf(xx, yy, Z, alpha=0.4)
    axarr[idx[0], idx[1]].scatter(X[:, 0], X[:, 1], c=y,
                                  s=20, edgecolor='k')
    axarr[idx[0], idx[1]].set_title(tt)
plt.show()
脚本的总运行时间:(0分钟0.611秒) 估计的内存使用量: 8 MB

1a3b07817052f30f781a4331fa8d7dbd.png

下载Python源代码:plot_voting_decision_regions.py 下载Jupyter notebook源代码:plot_voting_decision_regions.ipynb 由Sphinx-Gallery生成的画廊 bef618be1ee7550f4ac7945ba5ef82c6.png ☆☆☆为方便大家查阅,小编已将scikit-learn学习路线专栏文章统一整理到公众号底部菜单栏,同步更新中,关注公众号,点击左下方“系列文章”,如图: 1c570737a844bd8a875ff4e58bdf9069.png 欢迎大家和我一起沿着scikit-learn文档这条路线,一起巩固机器学习算法基础。(添加微信:mthler,备注:sklearn学习,一起进【sklearn机器学习进步群】开启打怪升级的学习之旅。) b6d0f0d5e51dacc0af74e16a649b4be5.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值