模型融合(集成方法) -投票法
参考:
https://www.cnblogs.com/gobetter/p/13786704.html
https://blog.csdn.net/oyww710/article/details/106310449
文章目录
- 一、基础原理
- 1.1 硬投票
- 1.2 软投票
- 二、代码
- 2.1 硬投票
- 2.2 软投票
一、基础原理
在所有集成学习方法中,最直观的是多数投票。因为其目的是输出基础学习者的预测中最受欢迎(或最受欢迎)的预测。多数投票是最简单的集成学习技术,它允许多个基本学习器的预测相结合。与选举的工作方式类似,该算法假定每个基础学习器都是投票者,每个类别都是竞争者。为了选出竞争者为获胜者,该算法会考虑投票。将多种预测与投票结合起来的主要方法有两种:一种是硬投票,另一种是软投票。我们在这里介绍两种方法。
这种投票分类器往往比单个的最佳分类器获得更高的准确率。事实上,即使每个分类器都是一个弱的学习者(意味着它只比随机猜测稍微好一点),如果有足够多的弱学习者并且他们足够多样化,那么最终集成得到的投票分类器仍然可以是一个强学习者(达到高精度)。
Hard Voting Classifier(硬投票):根据少数服从多数来定最终结果;
Soft Voting Classifier(软投票):将所有模型预测样本为某一类别的概率的平均值作为标准,概率最高的对应的类型为最终的预测结果。
1.1 硬投票
硬投票通过假设投票最多的类别是获胜者,结合了许多预测。在具有两个类别和三个基础学习器的简单情况下,如果目标类别至少具有两票,则它将成为集成法的最后输出。
模型 1:A - 99%、B - 1%,表示模型 1 认为该样本是 A 类型的概率为 99%,为 B 类型的概率为 1%;
1.2 软投票
软投票考虑了预测类别的可能性。为了结合预测结果,软投票计算每个类别的平均概率,并假设获胜者是具有最高平均概率的类别。
二、代码
2.1 硬投票
from sklearn.ensemble import RandomForestClassifier#随机森林分类器(该分类器本身就是集合而来)
from sklearn.ensemble import VotingClassifier #投票分类器
from sklearn.linear_model import LogisticRegression#逻辑回归分类器
from sklearn.svm import SVC #支持向量机分类器
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_splitX,y = make_moons(n_samples=500, noise=0.3,random_state=42)
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=42)
log_clf = LogisticRegression()
rnd_clf = RandomForestClassifier()
svm_clf = SVC()
voting_clf = VotingClassifier(estimators=[('lr',log_clf),('rf',rnd_clf),('svc',svm_clf)],#estimators:子分类器voting='hard') #参数voting代表你的投票方式,hard,soft# 输出每个模型法预测准确率
from sklearn.metrics import accuracy_score
for clf in (log_clf,rnd_clf,svm_clf,voting_clf):clf.fit(X_train,y_train)y_pre = clf.predict(X_test)print(clf.__class__,accuracy_score(y_pre,y_test))
2.2 软投票
如果所有的分类器都能够估计类概率(即sklearn中它们都有一个predict_proba()方法),那么可以求出类别的概率平均值,投票分类器将具有最高概率的类作为自己的预测。这称为软投票。
在代码中需要两处做更改,在支持向量机中,需要将参数probablity设置为True,使支持向量机具备预测类概率的功能。投票分类器中需要把voting设置为soft
svm_clf1 = SVC(probability=True) # probablity设置为True,可输出概率
voting_clf = VotingClassifier(estimators=[('lf',log_clf),('svc',svm_clf1),('rf',rnd_clf)],voting='soft')
for clf in (log_clf, rnd_clf, svm_clf1, voting_clf):clf.fit(X_train, y_train)y_pred = clf.predict(X_test)print(clf.__class__.__name__,accuracy_score(y_pred, y_test))
一般soft比hard表现的更出色!
模型融合(集成方法) -投票法相关推荐
- 【机器学习之模型融合】Voting投票法简单实践
目录 前言
- 7 种模型加权集成方法
# 7 种模型加权集成方法 不同任务 -> 不同加权方法 分类 类别投票 概率值加权 回归 预测值加权 排序 排序次序加权 目标检测 预测结果NMS 语义分割 像素类别投票 加权 集成学习 考虑 ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights)、计算融合模型的混淆矩阵、可视化混淆矩阵
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights).计算融合模型的混淆矩阵.可视化混淆矩阵 目 ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录
- sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录
- 模型优化之模型融合|集成学习
目录 模型融合 Bagging 随机森林RF Boosting Adaboost GBDT Xgboost Stacking Blending 结合策略 平均法 投票法 学习法 在机器学习训练完模型之 ...
- 【机器学习】集成学习投票法:投票回归器(VotingRegressor) 投票分类器(VotingClassifier)
前言 投票回归器和投票分类器都属于集成学习.在[机器学习]集成学习基础概念介绍中有提到过,集成学习的结合策略包括: 平均法.投票法和学习法.sklearn.ensemble库中的Voting Clas ...
- 机器学习模型的集成方法总结:Bagging, Boosting, Stacking, Voting, Blending
机器学习是人工智能的一个分支领域,致力于构建自动学习和自适应的系统,它利用统计模型来可视化.分析和预测数据.一个通用的机器学习模型包括一个数据集(用于训练模型)和一个算法(从数据学习).但是有些模型的 ...
- kaggle中zillow比赛中模型融合的方法及其代码
在机器学习这个领域,尤其是做多媒体(声音.图像.视频)相关的机器学习方法研究,会涉及很多特征.分类模型(分类任务)的选择.以声音识别为例,常见的特征有MFCC.LPCC.spectrogram-lik ...
最新文章
- poj-2828 Buy Tickets ***
- 请问:如何写出没有BUG的代码?
- Mysql group by 问题
- 【转】ABP源码分析一:整体项目结构及目录
- 关于python django开发过程中的常见的问题及解决办法总结
- 报名 | 美团技术沙龙第64期:美团不同业务场景下的系统架构实践
- android webdav 播放器,Android WebDAV
- 6Linux 终端命令格式
- 读取自定义配置文件属性值
- Filter(过滤器)Listene(监听器)笔记
- 虾皮shopee根据ID取商品详情 API 返回值说明
- Vue项目:IE11中地址栏直接改变路由页面不跳转bug
- 社区发现算法——(Spectral Clustering)谱聚类算法
- Day.js 一个轻量级的 JavaScript 时间日期处理库
- Liunx实现超级签名详细攻略(一)超级签名简介
- springboot+清远旅游推荐网站 毕业设计-附源码211551
- IDEA引用Class文件失败问题解决
- Java培训机构哪家好,不靠谱的有哪些
- Tapdata 创始人唐建法:以秒级响应速度,为企业提供实时数据服务 | 阿里云云原生加速器特别报道
- 64位WIN7下虚拟机安装winxp