Hard Voting 与 Soft Voting 的对比
一、Hard Voting 与 Soft Voting 的对比
1)使用方式
- voting = 'hard':表示最终决策方式为 Hard Voting Classifier;
- voting = 'soft':表示最终决策方式为 Soft Voting Classifier;
2)思想
- Hard Voting Classifier:根据少数服从多数来定最终结果;
- Soft Voting Classifier:将所有模型预测样本为某一类别的概率的平均值作为标准,概率最高的对应的类型为最终的预测结果;
Hard Voting
- 模型 1:A - 99%、B - 1%,表示模型 1 认为该样本是 A 类型的概率为 99%,为 B 类型的概率为 1%;
Soft Voting
- 将所有模型预测样本为某一类别的概率的平均值作为标准;
- Hard Voting 投票方式的弊端:
- 如上图,最终的分类结果不是由概率值更大的模型 1 和模型 4 决定,而是由概率值相对较低的模型 2/3/5 来决定的;
二、各分类算法的概率计算
- Soft Voting 的决策方式,要求集合的每一个模型都能估计概率;
1)逻辑回归算法
- P = σ( y_predict )
2)kNN 算法
- k 个样本点中,数量最多的样本所对应的类别作为最终的预测结果;
- kNN 算法也可以考虑权值,根据选中的 k 个点距离待预测点的距离不同,k 个点的权值也不同;
- P = n / k
- n:k 个样本中,最终确定的类型的个数;如下图,最终判断为 红色类型,概率:p = n/k = 2 / 3;
3)决策树算法
- 通常在“叶子”节点处的信息熵或者基尼系数不为 0,数据集中包含多种类别的数据,以数量最多的样本对应的类别作为最终的预测结果;(和 kNN 算法类似)
- P = n / N
- n:“叶子”中数量最多的样本的类型对应的样本数量;
- N:“叶子”中样本总量;
4)SVM 算法
- 在 scikit-learn 中的 SVC() 中的一个参数:probability
- probability = True:SVC() 返回样本为各个类别的概率;(默认为 False)
from sklearn.svm import SVC svc = SVC(probability=True)
- 计算样本为各个类别的概率需要花费较多时间;
三、scikit-learn 中使用集成分类器:VotingClassifier
1)模拟数据集
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_splitX, y = datasets.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
2)voting = 'hard':使用 Hard Voting 做决策
from sklearn.linear_model import LogisticRegression from sklearn.svm import SVC from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import VotingClassifier# 实例化 voting_clf = VotingClassifier(estimators=[('log_clf', LogisticRegression()),('svm_clf', SVC()),('dt_clf', DecisionTreeClassifier(random_state=666)) ], voting='hard')voting_clf.fit(X_train, y_train) voting_clf.score(X_test, y_test) # 准确率:0.896
3)voting = 'soft':使用 Soft Voting 做决策
voting_clf = VotingClassifier(estimators=[('log_clf', LogisticRegression()),('svm_clf', SVC(probability=True)),('dt_clf', DecisionTreeClassifier(random_state=666)) ], voting='soft')voting_clf.fit(X_train, y_train) voting_clf.score(X_test, y_test) # 准确率:0.912
- 使用 Soft Voting 时,SVC() 算法的参数:probability=True
Hard Voting 与 Soft Voting 的对比相关推荐
- 集成学习 hard/soft Voting,Bagging/Pasting,oob 随机森林
文章目录 一.什么是集成学习? 1.hard Voting 2.soft Voting 二.Bagging 和Pasting 1.引入Bagging和Pasting 2.代码举例 三.oob和关于Ba ...
- kaggle 泰坦尼克项目实战(详细代码分享)——集成学习Soft voting
顺利注册完kaggle之后,终于可以开始上手撸项目啦! 先从大名鼎鼎的泰坦尼克号开始吧! 尽管网上有很多大神进行了"入门级别"的代码分享讲解,但我看了一轮仍然觉得对新手不够友好. ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights)、计算融合模型的混淆矩阵、可视化混淆矩阵
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights).计算融合模型的混淆矩阵.可视化混淆矩阵 目 ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录
- 通俗易懂的机器学习——集成学习
集成学习 普通决策树与随机森林的对比 生成circles数据集 画图函数 使用决策树进行预测 构建决策树并训练 画图 交叉验证 使用Voting Classifier 投票 构建投票分类器 画图 So ...
- Ensemble Methods——python
Ensemble Methods Agenda 文章目录 Ensemble Methods Agenda Introduction to Ensemble Method集成方法简介 RandomFor ...
- 第13章 集成学习和随机森林
1.什么是集成学习? kNN,逻辑回归,SVM,决策树,神经网络,贝叶斯->>用多数算法最终给出的结果当做最终的决策依据,投票:少数服从多数 Voting Classifier(sciki ...
- 机器学习系列笔记十三: 集成学习/模型聚合
机器学习系列笔记十三: 集成学习/模型聚合 文章目录 机器学习系列笔记十三: 集成学习/模型聚合 什么是集成学习 Voting Hard Voting 模拟实现Hard Voting 集成学习 使用V ...
- 投票理论简介以及机器学习中的投票规则
投票理论简介以及机器学习中的投票规则 政治市场 从个人需求到集体决策 自由的政治市场 投票理论简介 Arrow不可能定理 Majority Rule May定理 Condorcet赢家 中位投票者定理 ...
最新文章
- Linux下的Shell编程(2)环境变量和局部变量
- strom.yaml配置
- 使用jasmine.createSpyObj具有依赖关系的Angular服务进行单元测试
- Linux怎么更新镜像,利用 Zsync 更新已有的 Ubuntu ISO 镜像
- Educational Codeforces Round 106 (Rated for Div. 2) D. The Number of Pairs 数论gcd
- 前端学习(1257):基于promise处理ajax请求
- poj1062昂贵的聘礼(Dijkstra**)
- 转载:制造业信息化:计划模拟APS软件驱动敏捷制造
- SpringBoot+JWT+SpringSecurity对api进行授权保护
- ubuntu16.04+VScode+C/C++编译器常用插件
- 部门换届推文文字_宿委会换届表彰大会!!!
- Linux容器的安装链接
- 关联分析:Apriori算法
- 无线信道:地波天波视距传输的特点和区别。
- 解决“fatal: 'origin' does not appear to be a git repository...”
- Python爬虫-IP隐藏技术与代理爬取
- Qt软键盘使用和修改软键盘参数 支持中文
- 沈阳贫民窟男孩的5条择偶观
- 7-18 二分法求多项式单根 (C语言)
- 利用决策树算法在鲍鱼数据集上对年龄进行预测