机器学习第10天:集成学习

文章目录

机器学习专栏

介绍

投票分类器

介绍

代码

核心代码

示例代码

软投票与硬投票

bagging与pasting

介绍

核心代码

随机森林

介绍

代码

结语


机器学习专栏

机器学习_Nowl的博客-CSDN博客

介绍

集成学习的思想是很直观的:多个人判断的结合往往比一个人的想法好

我们将在下面介绍几种常见的集成学习思想与方法 

投票分类器

介绍

假如我们有一个分类任务,我们训练了多个模型:逻辑回归模型,SVM分类器,决策树分类器,然后我们看他们预测的结果,如果两个分类器预测为1,一个分类器预测为0,那么最后模型判断为1,采用的是一种少数服从多数的思想


代码

核心代码

引入投票分类器库,并创建模型

from sklearn.ensemble import VotingClassifierlog_model = LogisticRegression()
tree_model = DecisionTreeClassifier()
svc_model = SVC()voting_model = VotingClassifier(estimators=[('lr', log_model), ('df', tree_model), ('sf', svc_model)],voting='hard'
)voting_model.fit(x, y)

例子中创建了三个基础分类器,最后再组合成一个投票分类器 

示例代码

我们在鸢尾花数据集上测试不同模型的分类效果

from sklearn.ensemble import VotingClassifier
from sklearn.svm import SVC
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_splitiris = load_iris()
X = iris.data  # petal length and width
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)log_model = LogisticRegression()
tree_model = DecisionTreeClassifier()
svc_model = SVC()voting_model = VotingClassifier(estimators=[('lr', log_model), ('df', tree_model), ('sf', svc_model)],voting='hard'
)for model in (log_model, tree_model, svc_model, voting_model):model.fit(X_train, y_train)y_pred = model.predict(X_test)print(model, accuracy_score(y_test, y_pred))

运行结果

该示例代码可以看到各个模型在相同数据集上的性能测试,该示例的数据集较小,所以性能相差不大,当数据集增大时 ,集成学习的性能往往比单个模型更优


软投票与硬投票

当基本模型可以计算每个类的概率时,集成学习将概率进行平均计算得出结果,这种方法被称作软投票,当基本模型只能输出类别时,只能实行硬投票(以预测次数多的为最终结果)

bagging与pasting

介绍

除了投票分类这种集成方法,我们还有其他方法,例如:使用相同的基础分类器,但是每个分类器训练的样本将从数据集中随机抽取,最后再结合性能,若抽取样本放回,则叫做bagging方法,若不放回,则叫做pasting方法


核心代码

from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifiermodel = BaggingClassifier(DecisionTreeClassifier(), n_estimators=500,max_samples=100, bootstrap=True, n_jobs=-1
)model.fit(X_train, y_train)

若基本分类器可以计算每个类的概率,BaggingClassifier自动执行软分类方法

bootstrap = True设置模型采用Bagging放回采样法

n_jobs参数代表用多少CPU内核进行训练何预测(-1代表使用所有可用内核)

设置为False时采用Pasting不放回采样法 


随机森林

介绍

随机森林就是一种基本模型是决策树的Bagging方法,你可以使用BaggingClassifier集成DecisionTreeClassifier,也可以使用现成的库


代码

from sklearn.ensemble import RandomForestClassifiermodel = RandomForestClassifier(n_estimators=100, max_leaf_nodes=16, n_jobs=-1)
model.fit(X_train, y_train)

max_leaf_nodes限制了子分类器的最大叶子节点数量


结语

集成学习就是利用了一个很基本的思想:多数人的想法往往比一个人的想法更优,同时概率论中也有这样一个场景:实验次数越多,概率越接近本质

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/200871.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

家政保洁预约小程序app开发特点有哪些?

家政预约服务小程序APP开发的特点介绍; 1. 低成本:用户通过手机APP下单,省去了中介费用,降低了雇主的雇佣成本。 2. 高收入:家政服务人员通过手机APP接单,省去了中介费用,从而提高了服务人员的…

QT专栏1 -Qt安装教程

#本文时间2023年11月18日,Qt 6.6# Qt 安装简要说明: Qt有两个版本一个是商业版本(收费),另一个是开源版本(免费); 打开安装程序时,通过判断账号是否有公司,安…

校园报修抢修小程序系统开发 物业小区报修预约上门维修工单系统

开发的功能模块有: 1.报修工单提交:学生、教职员工等可以使用小程序提交报修请求。这通常包括选择报修的问题类型(如水漏、电器故障、照明问题等),地点,报修联系人,联系电话等,并提供…

API之 要求接口上传pdf 以 合同PDF的二进制数据,multpart方式上传

实现 //时间戳13位毫秒private function getMillisecond() {list($s1,$s2) explode( ,microtime());return (float)sprintf(%.0f,(floatval($s1) floatval($s2)) * 1000);}// 组装参数private function gysscPost1($url,$data){// $data[timestamp] 1694402111964;$data[tim…

一个测试驱动的Spring Boot应用程序开发

文章目录 系统任务用户故事搭建开发环境Web应用的框架Spring Boot 自动配置三层架构领域建模域定义与领域驱动设计领域类 业务逻辑功能随机的Challenge验证 表示层RESTSpring Boot和REST API设计API第一个控制器序列化的工作方式使用Spring Boot测试控制器 小结 这里采用面向需…

小程序Tab栏与页面滚动联动

小程序tab栏切换与页面滚动联动 tab栏与页面滚动联动点击tab栏页面跳到指定位置滚动页面时切换tab栏 tab栏与页面滚动联动 在进行小程序开发时,需要实现点击tab栏页面滚动到某一指定位置,并且滚动页面时,小程序的tab栏进行切换。 在一开始&a…

整套数字化招采平台安全防御体系

招采平台作为数字化供应链的重要组成部分,需要确保招标采购过程的安全性,主体信息和交易数据信息尤为重要,通过必要的安全架构、技术和安全管理制度,做到事前防范、事中监管和事后审计的安全防御。 一、平台技术安全架构 1、先进的技术架构&#xff0c…

智能座舱架构与芯片- (12) 软件篇 中

三、智能座舱操作系统 3.1 概述 车载智能计算平台自下而上可大致划分为硬件平台、系统软件(硬件抽象层OS内核中间件)、功能软件(库组件中间件)和应用算法软件等四个部分。狭义上的OS特指可直接搭载在硬件上的OS内核;…

SpringCloud 微服务全栈体系(十五)

第十一章 分布式搜索引擎 elasticsearch 五、RestClient 操作文档 为了与索引库操作分离,再次参加一个测试类,做两件事情: 初始化 RestHighLevelClient酒店数据在数据库,需要利用 IHotelService 去查询,所以注入这个接…

【精选】项目管理工具——Maven详解

Maven简介 Maven是一个项目管理工具。它可以帮助程序员构建工程,管理jar包,编译代码,完成测试,项目打包等等。 Maven工具是基于POM(Project Object Model,项目对象模型)实现的。在Maven的管理下…

redis的集群

高可用方案 1、持久化 2、高可用 主从复制 哨兵模式 集群 主从复制: 主从复制是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础之上实现高可用 主从复制实现数据的多机备份,以及读写分离(主服务器负责写,从服务器…

人工智能给我们的生活带来了巨大的影响?

1. 人工智能从哪些方面给我们带来了影响? 人工智能出现,极大地影响了人类的生活,下面是人工智能所影响的领域: 1. 日常生活 智能家居: AI驱动的设备,如智能扬声器、灯光、恒温器,正在改变我们与家居环境的…

Moonbeam Network已上线原生USDC稳定币

原生USDC已经通过XCM从波卡来到了Moonbeam,该如何利用?此次集成通过把热门的Circle稳定币带来波卡生态,连接了区块链世界与传统金融。现在,用户和开发者可以在Moonbeam网络中踏寻USDC的强大之处。 Moonbeam生态中的Moonwell、FiD…

CPSC发布关于亚马逊含有纽扣电池或硬币电池产品的相关规则标准!UL4200A

2023年9月21日,美国消费品安全委员会(CPSC)在《联邦公报》上发布了纽扣及硬币电池及相关产品的最终规则(DFR)16 CFR 1263,以保护6岁以下儿童免受电池摄入危害。DFR将于2023年10月23日生效,除非消…

redis的性能管理和雪崩

redis的性能管理 redis的数据是缓存在内存当中的 系统巡检: 硬件巡检、数据库、nginx、redis、docker、k8s 运维人员必须要关注的redis指标 在日常巡检中需要经常查看这些指标使用情况 info memory #查看redis使用内存的指标 used_memory:11285512 #数据占用的…

Visual Studio Code 从英文界面切换中文

1、先安装中文的插件,直接安装。 2、点击右下角的 change language restart, 让软件重启即可以完成了。

leetcode:914. 卡牌分组(python3解法)

难度:简单 给定一副牌,每张牌上都写着一个整数。 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌。组内所有的牌上都写着相同的整数。 仅当你可选的 X > 2 时返回 tru…

基于单片机温湿度PM2.5报警系统

**单片机设计介绍, 基于单片机温湿度PM2.5报警设置系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 单片机温湿度PM2.5报警设置系统是一种智能化的环境检测与报警系统。它主要由单片机、传感器、液晶显示屏、蜂鸣器…

从暗黑3D火炬之光技能系统说到-Laya非入门教学一~资源管理

我不知道那些喷Laya没有浏览器,嘲笑别人编辑器做不好,是什么水平? 首先目前国内除了WPS和飞书,就没有第三家公司能把编辑器做好。 要是一般的游戏开发者,如我,有一点点引擎代码(某项目&#x…

51单片机LED灯渐明渐暗实验

51单片机LED灯渐明渐暗实验 1.概述 这篇文章介绍使用单片机控制两个LED彩灯亮度渐明渐暗效果,详细介绍了操作步骤以及完整的程序代码,动手就能制作的小实验。 2.操作步骤 2.1.硬件搭建 1.硬件准备 名称型号数量单片机STC12C2052AD1LED彩灯无2晶振1…