Python实现SSA智能麻雀搜索算法优化Catboost分类模型(CatBoostClassifier算法)项目实战

news2024/11/23 22:20:53

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。




1.项目背景

麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出,主要是受麻雀的觅食行为和反捕食行为的启发。

在麻雀觅食的过程中,分为发现者(探索者)和加入者(追随者),发现者在种群中负责寻找食物并为整个麻雀种群提供觅食区域和方向,而加入者则是利用发现者来获取食物。为了获得食物,麻雀通常可以采用发现者和加入者这两种行为策略进行觅食。种群中的个体会监视群体中其它个体的行为,并且该种群中的攻击者会与高摄取量的同伴争夺食物资源,以提高自己的捕食率。此外,当麻雀种群意识到危险时会做出反捕食行为。

本项目通过SSA智能麻雀搜索算法优化CATBOOST分类模型。

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

数据详情如下(部分展示):

 

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据:

关键代码:

 

3.2 数据缺失查看

使用Pandas工具的info()方法查看数据信息:

从上图可以看到,总共有11个变量,数据中无缺失值,共1000条数据。

关键代码:

3.3 数据描述性统计

通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。

 关键代码如下:

4.探索性数据分析

4.1 y变量柱状图

用Matplotlib工具的plot()方法绘制柱状图:

 

4.2 y=1样本x1变量分布直方图

用Matplotlib工具的hist()方法绘制直方图:

 

4.3 相关性分析 

 

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。

5.特征工程

5.1 建立特征数据和标签数据

关键代码如下:

 

5.2 数据集拆分

通过train_test_split()方法按照80%训练集、20%测试集进行划分,关键代码如下:

 

6.构建SSA智能麻雀搜索算法优化CATBOOST分类模型

主要使用SSA智能麻雀搜索算法优化CATBOOST分类算法,用于目标分类。

6.1 SSA智能麻雀搜索算法寻找最优的参数值   

最优参数:

 6.2 最优参数值构建模型

 

7.模型评估

7.1 评估指标及结果

评估指标主要包括准确率、查准率、查全率、F1分值等等。

 

 从上表可以看出,F1分值为0.9158,说明模型效果较好。

关键代码如下:  

7.2 分类报告

从上图可以看出,分类为0的F1分值为0.92;分类为1的F1分值为0.92。

7.3 混淆矩阵

 

从上图可以看出,实际为0预测不为0的 有10个样本;实际为1预测不为1的 有6个样本,整体预测准确率良好。

8.结论与展望

综上所述,本文采用了SSA智能麻雀搜索算法寻找CATBOOST算法的最优参数值来构建分类模型,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。

# 定义边界函数
def Bounds(s, Lb, Ub):
    temp = s
    for i in range(len(s)):
        if temp[i] < Lb[0, i]:  # 小于最小值
            temp[i] = Lb[0, i]  # 取最小值
        elif temp[i] > Ub[0, i]:  # 大于最大值
            temp[i] = Ub[0, i]  # 取最大值
 
 
# ******************************************************************************
 
# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 链接:https://pan.baidu.com/s/1c6mQ_1YaDINFEttQymp2UQ
 
# 提取码:thgk
 
# ******************************************************************************
 
 
# y=1样本x1变量分布直方图
fig = plt.figure(figsize=(8, 5))  # 设置画布大小
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
data_tmp = data.loc[data['y'] == 1, 'x1']  # 过滤出y=1的样本
# 绘制直方图  bins:控制直方图中的区间个数 auto为自动填充个数  color:指定柱子的填充色
plt.hist(data_tmp, bins='auto', color='g')

更多项目实战,详见机器学习项目实战合集列表:

机器学习项目实战合集列表_机器学习实战项目_胖哥真不错的博客-CSDN博客


项目代码咨询、获取,请见下方公众号。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「2024」预备研究生mem-分析推理强化:排队列(上)

一、分析推理强化&#xff1a;排队列(上) 二、练习

华为云classroom赋能--Toolkit系列插件DevSecOps助力开发者提速

一、前言 DevOps的概念想必大家都不陌生&#xff0c;它是一组过程、方法与系统的统称&#xff0c;通过它可以对交付速率、协作效率、部署频率速率、质量、安全和可靠性等进行提升改善。相比传统的软件开发模式&#xff0c;它是一种工作方式和文化的转变&#xff0c;把开发者和…

git Update failed cannot lock ref

报错详情 解决方案 百度了很多方案&#xff0c;过滤出了有效方案 去该项目下的.git文件里找到报错文件&#xff0c;本例中即为&#xff1a;.git/refs/tags/pre-RELEASE-PRE-20230817-03 删除该文件&#xff0c;重新pull&#xff0c;pull成功问题解决

江南大学采购ZJ-3型精密D33测试仪四件套设备

江南大学采购ZJ-3型精密D33测试仪四件套设备 江南大学&#xff08;Jiangnan University&#xff09;&#xff0c;坐落于江苏省无锡市&#xff0c;是中华人民共和国教育部直属高校&#xff0c;由教育部、江苏省人民政府共建 &#xff0c;国家“双一流”建设高校&#xff0c; “…

爬虫用拨号好还是HTTP爬虫ip池好?

程序员小伙伴们&#xff0c;在进行爬虫时&#xff0c;你是否曾纠结于选择拨号还是代理&#xff1f;不要犯愁&#xff01;今天我将与你分享一些实用的择优技巧&#xff0c;帮助你在爬虫之路上实现更高效的提速&#xff01; 一、拨号和HTTP爬虫ip的优劣势分析 1、拨号 优势&…

mac苹果电脑怎么运行Windows软件?怎么安装Win虚拟机?

近年来&#xff0c;苹果电脑的用户群体不断扩大&#xff0c;许多用户对于苹果电脑是否可以运行Windows软件产生了疑问。苹果电脑和Windows操作系统有着明显的区别&#xff0c;是否能够在苹果电脑上运行Windows软件。下面我们就来看苹果电脑可以运行Windows软件吗&#xff0c;苹…

基于javaweb的线上办公系统/在线员工办公系统的设计与实现

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括线上办公系统的网络应用&#xff0c;在外国线上办公系统已经是很普遍的方式&#xff0c;不过国内的线上办公可能还处于起步阶段。线上办公系统具有部门信息、职位信息、…

LInux之例行工作

目录 场景 单一执行例行任务 --- at&#xff08;一次性&#xff09; 安装 命令详解 语法格式 参数及作用 时间格式 案例 at命令执行过程分析 循环执行的例行性任务--crontab&#xff08;周期性&#xff09; crontd服务安装 linux 任务调度的工分类 crontab工作过程…

网银快捷支付接口怎么申请?

快速支付是一种方便的支付方式&#xff0c;允许用户在不重复输入卡号、密码等详细信息的情况下&#xff0c;使用预绑定的银行卡或支付账户进行快速支付。 在快速支付中&#xff0c;用户可以选择在商家网站、移动应用或支付平台上使用快速支付选项&#xff0c;并选择绑定的银行…

云上的甜蜜早安:腾讯云云函数助力PHP打造女友专属每日推送

用腾讯云的云函数做一个微信公众号早安&#xff0c;每天定时发送早安给你的女朋友&#xff01; 1.首先我们登录腾讯云&#xff0c;在搜索栏搜索云函数 2.进入云函数&#xff0c;点击立即体验 3.这里我们选择 按照步骤选择 php 4.再就是配置页面&#xff0c;这里我们只需要配…

ChatGPT对于留学生带来了哪些影响?留学生又应该如何使用?

悉尼大学的赶DUE高峰期来得总是那么早&#xff0c;才开学四周&#xff0c;图书馆就已经被赶DUE人占领地满满当当。 面对即将到来的大批量写作任务&#xff0c;不少同学们打起了ChatGPT的主意。 2022年11月&#xff0c;人工智能&#xff08;AI&#xff09;工具ChatGPT&#xff…

jmeter CSV 数据文件设置

创建一个CSV数据文件&#xff1a;使用任何文本编辑器创建一个CSV文件&#xff0c;将测试数据按照逗号分隔的格式写入文件中。例如&#xff1a; room_id,arrival_date,depature_date,bussiness_date,order_status,order_child_room_id,guest_name,room_price 20032,2023-8-9 14:…

天翼物联首款自研RedCap终端完成测试

近日&#xff0c;天翼物联在中国电信国家双创基地物联网开放实验室完成了首款自研RedCap网关终端CTW-GW-01的认证测试工作。该款终端由天翼物联终端模组产品团队研发打造&#xff0c;以天翼物联CTWing终端能力仓为基础&#xff0c;旨在为产业提供差异化的终端服务&#xff0c;助…

Vue3.X 路由与导航栏、侧边栏(四)

我们接着上一节的 Vue3.x 生命周期&#xff08;三&#xff09; 的说明&#xff0c;我们这一节讲解了项目中路由的配置与导航栏、侧边栏的关系。 一、路由配置 vue项目中路由配置有一个固有文件夹&#xff0c;可以配置路由&#xff0c;这样的优点使项目更加清晰明了。 如图&a…

c++11 标准模板(STL)(std::basic_stringbuf)(五)

定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::allocator<CharT> > class basic_stringbuf : public std::basic_streambuf<CharT, Traits> std::basic_stringbu…

华为数通方向HCIP-DataCom H12-821题库(单选题:21-40)

第21题 在广播类型网络中,DIS默认发送Hello时间间隔为多少? A、10s B、3.3s C、5S D、40s 答案&#xff1a;B 解析&#xff1a; 在广播环境中,DIS 发送 hello 报文的周期更加的短,是普通ISIS路由器的1/3,普通ISIS路由器发送hello的时间为10s,所以DIS发送hello的周期是3.3s …

vue3新建的项目如何配置

如何创建vue项目链接&#xff1a;http://t.csdn.cn/tX8wY 点击src删除一些没有用的东西 首先查看node_modules文件夹有没有pnpm文件夹&#xff0c;有的话删除node_modules文件夹 重新使用npm i进行安装 在APP.vue下面删除无用代码 删除前 删除后 在views下面找到Home首页删…

用大模型“介绍如何用不同的编程语言编写出七夕的爱情感觉”

前言 七夕是中国传统的情人节&#xff0c;也是向心爱的人表达情感的好时机。而今&#xff0c;技术发展日新月异&#xff0c;让我们一起用创意和技术的力量来营造浪漫的氛围吧&#xff01; 在这篇博客文章中&#xff0c;我将向您展示如何用大模型去实现。 文心一言 Python编程…