投票法(Voting)简介

投票法(Voting)是利用多个模型来训练数据集,最终使用投票的方式来选择结果。

Voting分为两种类型:软投票(Soft Voting)和硬投票(Hard Voting)。

软投票:输出类概率

硬投票:输出类标签

投票法(Voting)实现

硬投票

import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
from sklearn import model_selection
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import VotingClassifier
from sklearn.model_selection import cross_val_score
#载入数据集
iris=datasets.load_iris()
#只要1,2两列的特征
x_data,y_data=iris.data[:,1:3],iris.target
#定义三个不同的分类器
clf1=KNeighborsClassifier(n_neighbors=1)
clf2=DecisionTreeClassifier()
clf3=LogisticRegression()
vclf=VotingClassifier(estimators=[('knn',clf1),('dt',clf2),('lr',clf3)], voting='hard')
for clf, clf_name in zip([clf1, clf2, clf3, vclf],['KNN', 'DT', 'LR', 'Ensemble']):scores = cross_val_score(clf, x_data, y_data, cv=5, scoring='accuracy')print('Accuracy: {:.2f} (+/- {:.2f}) [{}]'.format(scores.mean(), scores.std(), clf_name))

硬投票结果如下所示:

软投票实现:

import matplotlib.pyplot as plt
plt.style.use('ggplot')
from itertools import product
soft_clf=VotingClassifier(estimators=[('knn',clf1),('dt',clf2),('lr',clf3)], voting='soft',weights=[2,1,1])
#weights控制每个算法的权重,soft:软投票
clf1.fit(x_data,y_data)#训练模型
clf2.fit(x_data,y_data)
clf3.fit(x_data,y_data)
soft_clf.fit(x_data,y_data)x_min, x_max = x_data[:,0].min() -1, x_data[:,0].max() + 1
y_min, y_max = x_data[:,1].min() -1, x_data[:,1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.01), np.arange(y_min, y_max, 0.01))  #创建网格fig, axes = plt.subplots(2, 2, sharex='col', sharey='row', figsize=(10, 8)) #共享X轴和Y轴for idx, clf, title in zip(product([0, 1],[0, 1]),[clf1, clf2, clf3, soft_clf],['KNN (k=1)','DT','LR', 'Soft Voting']):Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape)axes[idx[0], idx[1]].contourf(xx, yy, Z, alpha=0.4)axes[idx[0], idx[1]].scatter(x_data[:, 0],x_data[:, 1], c=y_data, s=20, edgecolor='k')axes[idx[0], idx[1]].set_title(title)
plt.show()

软投票结果如下图所示:


参考文献:https://www.seaxiang.com/blog/c228c01936704287b0eb0949df4e97ea

机器学习笔记-投票法(Voting)理论与实现相关推荐

  1. (七)集成学习中-投票法Voting

    集成学习第一法宝:投票! 参考:DataWhale教程链接 集成学习(上)所有Task: (一)集成学习上--机器学习三大任务 (二)集成学习上--回归模型 (三)集成学习上--偏差与方差 (四)集成 ...

  2. 【机器学习】集成学习投票法:投票回归器(VotingRegressor) 投票分类器(VotingClassifier)

    前言 投票回归器和投票分类器都属于集成学习.在[机器学习]集成学习基础概念介绍中有提到过,集成学习的结合策略包括: 平均法.投票法和学习法.sklearn.ensemble库中的Voting Clas ...

  3. 机器学习笔记之玻尔兹曼机(三)梯度求解(基于平均场理论的变分推断)

    机器学习笔记之玻尔兹曼机--基于平均场推断梯度求解 引言 回顾:玻尔兹曼机模型参数梯度求解困难与MCMC方法的处理方式 变分推断方法处理玻尔兹曼机对数似然梯度 引言 上一节介绍了使用马尔可夫链蒙特卡洛 ...

  4. 机器学习笔记之正则化(一)拉格朗日乘数法角度

    机器学习笔记之正则化--拉格朗日乘数法角度 引言 回顾:基于正则化的最小二乘法 正则化描述 正则化的优化对象 常见的正则化方法 正则化角度处理神经网络的过拟合问题 场景构建 最优模型参数的不确定性 最 ...

  5. 机器学习笔记之玻尔兹曼机(三)基于平均场理论变分推断的梯度求解(续)

    机器学习笔记之玻尔兹曼机--基于平均场推断梯度求解[续] 引言 Λ 3 \Lambda_3 Λ3​梯度求解 求解最优参数 ϕ ^ j \hat {\phi}_j ϕ^​j​ 引言 基于玻尔兹曼机(三) ...

  6. 【LeetCode笔记】169. 多数元素(Java、摩尔投票法、哈希表)

    文章目录 题目描述 思路 & 代码 思路一:哈希表 思路二: 摩尔投票法 题目描述 好家伙,这是今天最有意思的题目了 思路 & 代码 思路一:哈希表 先说缺点:空间复杂度O(n) 一次 ...

  7. 关于集成学习的总结(一) 投票法

    最近在写那个完整的机器学习项目博客时候,我本来打算用一篇博客来写的.结果发现要写的越来越多.而且最关键的是,以前以为有些地方理解了,其实并没有理解.大概这就是写博客记笔记的好处吧...可惜我上高中初中 ...

  8. Python机器学习笔记:sklearn库的学习

    自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了,scikit-learn简称sklearn,支持包括分类,回归,降维和聚类四大机器学习算法.还包括了特征提取,数据 ...

  9. matlab回归问题,机器学习笔记(一)—— 线性回归问题与Matlab求解

    给你多组数据集,例如给你很多房子的面积.房子距离市中心的距离.房子的价格,然后再给你一组面积. 距离,让你预测房价.这类问题称为回归问题. 回归问题(Regression) 是给定多个自变量.一个因变 ...

最新文章

  1. mysql 表空间监控shell_一种通过zabbix监控mysql表空间的方法
  2. 京东大数据:南方姑娘更爱驾驭8cm以上高跟鞋
  3. 小编教您Springboot项目中异常拦截设计与处理
  4. 在北京,一款App从无到有至少需要100万?
  5. 体质测试数据统计软件,[体质测试数据excel自动统计表]体质测试数据Excel自动统计模板的研制...
  6. 壁纸控、视觉控少不了高图网解决图片需求问题
  7. DNS配置,主从,子域,转发
  8. $.ajax跳入error之 async
  9. VS 的编译选项 build下的 platform target -- Any CPU和x86有什么影响?
  10. 3D数学基础:矩阵的几何解释
  11. web 打开pdf文件
  12. 英语测试用什么软件有哪些,学习英语的软件哪个好 什么比较好用
  13. 谷歌浏览器怎么长截图怎么截_Google浏览器如何截取网页长图 - 里维斯社
  14. 抖音返利分销模式及代理系统开发
  15. coreldraw x7 分布_CDR X7新增功能有哪些,CDR X7新功能介绍
  16. IDEA Maven下载依赖时报错: ERROR - #org.jetbrains.idea.maven - Cannot reconnect.
  17. 互联网产品之运营管理
  18. JAVA编程基础实验
  19. 使用three.js模拟城市灯光秀
  20. 2023 简单响应个人收款二维码源码 美化版

热门文章

  1. v-rep仿真之键盘控制机械臂末端移动
  2. USBCNC ATC自动换刀教程
  3. SHOGUN toolbox的一些使用心得
  4. 【UEFI实战】HII之vfr文件
  5. 智能血糖仪行业调研报告 - 市场现状分析与发展前景预测
  6. mysql查询上班打卡sql怎么写_sql查询一段时期里每一天所有员工的打卡记录
  7. 计算机无效d盘的错误怎么解决,电脑d盘打不开怎么办
  8. 玩电脑玩出的 Linux 专家 - Google(谷歌)开发者日演讲者之苏哲
  9. SPSS-概率单位回归分析Probit回归 (随笔笔记)
  10. 传智播客年轻的老师们!!