Python实现FA萤火虫优化算法优化LightGBM回归模型(LGBMRegressor算法)项目实战

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

1.项目背景

萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , 作为最新的群智能优化算法之一,该算法具有更好的收敛速度和收敛精度,且易于工程实现等优点。

本项目通过FA萤火虫优化算法寻找最优的参数值来优化LightGBM回归模型。

2.数据获取

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

编号 

变量名称

描述

1

x1

2

x2

3

x3

4

x4

5

x5

6

x6

7

x7

8

x8

9

x9

10

x10

11

y

因变量

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

3.数据预处理

3.1 用Pandas工具查看数据

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

关键代码:

3.2 数据缺失查看

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

      

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

关键代码:  

3.3 数据描述性统计

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

关键代码如下:    

4.探索性数据分析

4.1 y变量直方图

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

从上图可以看到,y变量主要集中在-400~400之间。

4.2 相关性分析

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

5.特征工程

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

关键代码如下:

5.2 数据集拆分

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

6.构建FA萤火虫优化算法优化LightGBM回归模型

主要使用FA萤火虫优化算法优化LightGBM回归算法,用于目标回归。

6.1 FA萤火虫优化算法寻找的最优参数   

最优参数:

   

6.2 最优参数值构建模型

编号

模型名称

参数

1

LightGBM回归模型

n_estimators=best_n_estimators

2

learning_rate=best_learning_rate 

7.模型评估

7.1 评估指标及结果

评估指标主要包括可解释方差值、平均绝对误差、均方误差、R方值等等。

模型名称

指标名称

指标值

测试集

LightGBM回归模型

  R方

0.9529

均方误差

1540.5081

可解释方差值

0.953

平均绝对误差

30.1685 

从上表可以看出,R方0.9529,说明模型效果较好。

关键代码如下:

7.2 真实值与预测值对比图

从上图可以看出真实值和预测值波动基本一致,模型拟合效果良好。     

8.结论与展望

综上所述,本文采用了FA萤火虫优化算法寻找LightGBM回归算法的最优参数值来构建回归模型,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。

# 本次机器学习项目实战所需的资料,项目资源如下:# 项目说明:链接:https://pan.baidu.com/s/1kEVSoOYkQJtF_PA6r5trDQ 
提取码:aepv

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

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


 

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

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

相关文章

0基础学java-day14

一、集合 前面我们保存多个数据使用的是数组,那么数组有不足的地方,我们分析一下 1.数组 2 集合 数据类型也可以不一样 3.集合的框架体系 Java 的集合类很多,主要分为两大类,如图 :[背下来] package com.hspedu.c…

UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)

UniApp 运行到浏览器的时候,接口会跨域报错,这里通过两种方式解决,第一:修改Uniapp自带的manifest.json 源码视图并进行配置h5设置。第二:在项目根目录新建vue.config.js并配置代理。 二选一即可。 修改或调整配置文件…

Python 进阶(十四):枚举类型(enum 模块)

大家好,我是水滴~~ 本篇文章主要介绍了Python中的枚举类型,主要内容包括:枚举类型的简介、创建枚举类型、使用枚举类型等。 文章中包含大量的代码示例,能够帮助新手同学快速入门。 《Python入门核心技术》专栏总目录・点这里 文…

Java使用Redis

项目是基于 maven 构建的&#xff0c;那么可以直接导入 maven 坐标&#xff0c;如下所示&#xff1a; <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency>…

Vue 父传子组件传参 defineProps

defineProps 属性&#xff1a;用于接收父组件传递过来的数据。 注意&#xff1a;如果 defineProps 接收的参数名&#xff0c;和已有变量名相同&#xff0c;就会造成命名冲突。 语法格式&#xff1a; // 无限制 const props defineProps([参数名, 参数名]);// 限制数据类型 …

第二十一章总结

一、网络通信&#xff1a; 1.网络程序设计基础&#xff1a;网络程序设计编写的是与其他计算机进行通信的程序。 1.1局域网与互联网&#xff1a;为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机 2.网络协议&#xff1a;网络协议规定了计算机之间连接的…

文心一言大模型应用开发入门

本文重点介绍百度智能云平台、文心一言、千帆大模型平台的基本使用与接入流程及其详细步骤。 注册文心一言 请登录文心一言官方网站 https://yiyan.baidu.com/welcome 点击登录&#xff1b;图示如下&#xff1a; 请注册文心一言账号并点击登录&#xff0c;图示如下&#xff1…

Java面试题(每天10题)-------连载(42)

目录 Spring篇 1、Spring Bean的作用域之间有什么区别&#xff1f; 2、什么是Spring inner beans&#xff1f; 3、Spring框架中的单例Beans是线程安全的吗&#xff1f; 4、请举例说明如何在Spring中诸如一个Java Collection&#xff1f; 5、如何向Spring Bean中诸如一个J…

游戏:火星孤征 - deliver us mars - 美图秀秀~~

今天水一篇&#xff0c;借着免费周下载了deliver us mars&#xff0c;玩下来截了好多图&#xff0c;就放这里了。 游戏没有难度&#xff0c;剧情也不难理解&#xff0c;美图到处都是&#xff0c;建模细节也是满满&#xff0c;值得一玩。 游戏中的 A.S.E是守卫飞行机器人&…

力扣刷题day2(最长公共前缀,有效括号,删除有序数组中的重复元素)

题目1&#xff1a;14.最长公共前缀 思路和解析&#xff1a; #define _CRT_SECURE_NO_WARNINGS //最长公共前缀 char* longestCommonPrefix(char** strs, int strsSize) {// 如果字符串数组为空&#xff0c;则返回空字符串if (strsSize 0){return "";}// 将第一个…

网络安全威胁——跨站脚本攻击

跨站脚本攻击 1. 定义2. 跨站脚本攻击如何工作3. 跨站脚本攻击类型4. 如何防止跨站脚本攻击 1. 定义 跨站脚本攻击&#xff08;Cross-site Scripting&#xff0c;通常称为XSS&#xff09;&#xff0c;是一种典型的Web程序漏洞利用攻击&#xff0c;在线论坛、博客、留言板等共享…

JRT打印预览实现

JRT客户端部分已经实现了打印、导出Excel部分&#xff0c;之前没实现打印预览部分&#xff0c;因为要自己写打印预览界面&#xff0c;所以留到最后做&#xff0c;经过两晚的努力&#xff0c;实现了打印预览。 效果: 打印预览界面代码 package Monitor.Print;import javafx.a…

海鹰数据 shopee :为Shopee卖家提供的数据分析工具

在如今的电商时代&#xff0c;拥有准确的市场数据和深入的竞争分析是每个卖家成功的关键。为了帮助Shopee卖家更好地了解市场趋势、优化商品策略并提高运营效果&#xff0c;海鹰数据&#xff08;Haiying Data&#xff09;应运而生。作为一个专注于Shopee平台的数据分析工具&…

【日常总结】树莓派导致的公司无法上网 - 广播风暴

一、场景 二、问题 三、分析原因 四、解决方案 方案一&#xff1a;更换树莓派后ping路由器恢复正常 方案二&#xff1a;配置交换机 交换机广播风暴配置 也可以通过PPS来限速 查看配置 一、场景 宽带&#xff1a;公司3条500M光纤-联通 路由器&#xff1a;锐捷 在线用户…

VMware vSphere Web Services SDK 6.5编程指南(译文)

VMware vSphere Web Services SDK 6.5编程指南(译文) 本文档根据VMware vSphere 6.5 Documentation Center进行翻译整理&#xff0c;总共八章共110页。 先申明该译文文档非免费&#xff0c;有需要的可以联系(私信或微信)译者&#xff0c;文章尾部留也有联系方式。 目录 … ……

C++ vector在使用resize方法时不会改变原有的值.

resize() 函数可以接受以下几种参数&#xff1a; 一个整数参数&#xff1a;将向量的大小调整为指定的整数值。如果指定的大小大于当前向量的大小&#xff0c;则在向量末尾添加默认构造的元素&#xff08;对于 int 类型是0&#xff0c;对于指针类型是nullptr&#xff0c;对于引用…

使用特殊token 编码超级大的voc词表LLM

这里写目录标题 代码解析代码 import pandas as pd import numpy as np from tqdm import tqdm en_voc =pd.read_pickle("/home/aistudio/en_voc.pandas_pickle") # 计算需要几位特殊token 表达 en_voc def gen_sp(en_voc1)

SAP MM中的科目分配类别是什么,如何配置

一、概述 这篇文章将概述 SAP MM 中的科目分配类别的基本概念以及如何在系统中配置它。我将在SAP配置中逐步解释配置。在此之前要理解采购的两种模式&#xff0c;库存物料采购和消耗型物料采购之间的区别。 1.1、库存采购 库存采购的物料&#xff0c;在收货后做库存管理&…

java WebSocket带参数处理使用

1、webSocket实现代码 Component public class WebSocketStompConfig {//这个bean的注册,用于扫描带有ServerEndpoint的注解成为websocket// ,如果你使用外置的tomcat就不需要该配置文件Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpoi…

【Python百宝箱】分布式魔法:穿越分布式奇境的导航

Python 交响曲&#xff1a;优雅构建分布式系统的奇妙之旅 前言 随着现代应用程序的发展&#xff0c;分布式系统已经成为应对高负载和复杂任务的关键。在这个领域&#xff0c;Python以其灵活性和强大的生态系统展现出了令人惊叹的实力。本文将带您踏上一场神奇之旅&#xff0c…