基于机器学习的电池剩余使用寿命RUL预测

news2024/11/20 17:38:00

​代码较为简单。

import numpy as np # linear algebraimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)import os
import matplotlib.pyplot as pltimport seaborn as sns%matplotlib inlineimport warningswarnings.filterwarnings('ignore')
df=pd.read_csv("Battery_RUL.csv")df.head()

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 15064 entries, 0 to 15063
Data columns (total 9 columns):
 #   Column                     Non-Null Count  Dtype  
---  ------                     --------------  -----  
 0   Cycle_Index                15064 non-null  float64
 1   Discharge Time (s)         15064 non-null  float64
 2   Decrement 3.6-3.4V (s)     15064 non-null  float64
 3   Max. Voltage Dischar. (V)  15064 non-null  float64
 4   Min. Voltage Charg. (V)    15064 non-null  float64
 5   Time at 4.15V (s)          15064 non-null  float64
 6   Time constant current (s)  15064 non-null  float64
 7   Charging time (s)          15064 non-null  float64
 8   RUL                        15064 non-null  int64  
dtypes: float64(8), int64(1)
memory usage: 1.0 MB
df.describe()

numlist=df.columns fig = plt.figure(figsize=(20,20))for i in range(len(numlist)):    plt.subplot(3,3,i+1)    plt.title(numlist[i],fontsize=12)    plt.hist(df[numlist[i]])plt.tight_layout()

sns.pairplot(df)

plt.figure(figsize = (15,8))sns.heatmap(df.corr(),annot=True, cbar=False, cmap='Blues', fmt='.1f')

df1=df.drop(['Cycle_Index','Discharge Time (s)', 'Decrement 3.6-3.4V (s)', 'Time constant current (s)','Charging time (s)'],axis=1)from pycaret.regression import *exp_reg = setup(df1, target = 'RUL',remove_outliers=True,session_id=1)

DescriptionValue
0Session id1
1TargetRUL
2Target typeRegression
3Original data shape(15064, 4)
4Transformed data shape(14536, 4)
5Transformed train set shape(10016, 4)
6Transformed test set shape(4520, 4)
7Numeric features3
8PreprocessTrue
9Imputation typesimple
10Numeric imputationmean
11Categorical imputationmode
12Remove outliersTrue
13Outliers threshold0.050000
14Fold GeneratorKFold
15Fold Number10
16CPU Jobs-1
17Use GPUFalse
18Log ExperimentFalse
19Experiment Namereg-default-name
20USIdc44
compare_models()

ModelMAEMSERMSER2RMSLEMAPETT (Sec)
etExtra Trees Regressor21.74285805.621775.50500.94410.33750.20900.1840
rfRandom Forest Regressor23.38086218.246278.27570.94020.37030.22860.2520
xgboostExtreme Gradient Boosting28.11916649.049080.78870.93600.36340.25830.1810
lightgbmLight Gradient Boosting Machine33.31216980.398982.91090.93280.39180.30130.1180
dtDecision Tree Regressor24.79417224.901384.46530.93050.41370.22630.0450
gbrGradient Boosting Regressor41.42927696.647587.18950.92590.43260.37670.1220
adaAdaBoost Regressor53.86928601.393292.31230.91720.51160.57610.0830
knnK Neighbors Regressor47.63698847.039793.72570.91490.52020.33590.0500
dummyDummy Regressor278.8523104050.8450322.5486-0.00081.05633.30940.0420
lrLinear Regression215.75803866029.72781866.2254-36.13400.61610.76150.2940
larLeast Angle Regression215.75953866065.50421866.2348-36.13430.61610.76140.0440
ridgeRidge Regression220.86404141461.06881930.9796-38.77970.61380.77120.0450
parPassive Aggressive Regressor268.52884193895.03031907.7742-39.31760.68970.96400.0470
brBayesian Ridge232.68504716618.38362054.9328-44.31220.63080.81360.0430
lassoLasso Regression233.88834790127.03602073.9986-45.00740.63250.81400.2320
llarLasso Least Angle Regression233.88834790127.62302073.9987-45.00740.63250.81400.0460
ompOrthogonal Matching Pursuit233.88894790152.87772074.0042-45.00760.63240.81400.0340
enElastic Net233.88904790175.93672074.0099-45.00780.63250.81400.0420
huberHuber Regressor235.34484915415.12372086.1153-46.17600.63310.81950.0460
ExtraTreesRegressor(n_jobs=-1, random_state=1)
reg_model = create_model('et')

plot_model(reg_model,plot='error')

plot_model(reg_model,plot='residuals')

plot_model(reg_model,plot='feature')

xgb = create_model('xgboost',verbose=False)rf = create_model('rf', verbose = False)blend_specific = blend_models(estimator_list = [rf,xgb,reg_model])

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

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

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

相关文章

2024年6月8日,骑行杨柳冲峡谷:一场心灵与自然的交响曲

引言&#xff1a;寻找生活的节奏在这个快节奏的时代&#xff0c;我们常常迷失在都市的喧嚣中&#xff0c;忘记了如何聆听内心的声音。2024年6月8日&#xff0c;我与一群志同道合的校卡骑行群骑友&#xff0c;踏上了前往杨柳冲峡谷的旅程&#xff0c;这不仅仅是一次简单的户外活…

C++ BFS相关题目

目录 图像渲染 岛屿数量 图像渲染 733. 图像渲染 vis就是标记1有没有被用过 符合条件的都放到队列里&#xff0c;每次出队列一个&#xff0c;判四个&#xff0c; 如果要改的值与当前的值相同直接返回 注意&#xff1a;image[x][y] prev要放在坐标判断的后面&#xff…

【数据分析】统计学基础及Python具体实现

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…

检查平衡性

题目链接 检查平衡性 题目描述 注意点 平衡树的定义如下&#xff1a;任意一个节点&#xff0c;其两棵子树的高度差不超过 1 解答思路 递归寻找每个节点作为根节点时是否是平衡树&#xff0c;对于任意一个节点&#xff0c;判断其是否是平衡树需要分别判断其左子树和右子树是…

【Echarts系列】平滑折线面积图

【Echarts系列】平滑折线面积图 序示例数据格式代码 序 为了节省后续开发学习成本&#xff0c;这个系列将记录我工作所用到的一些echarts图表。 示例 平滑折线面积图如图所示&#xff1a; 数据格式 data [{name: 2020年,value: 150},{name: 2021年,value: 168},{name: 2…

edge的GPU占很大内存处理

到设置中,把对视频的这2个增强关掉&#xff0c;重启浏览器之后就正常多了

自动检测曲别针数量:图像处理技术的应用

引言 在这篇博客中&#xff0c;我们将探讨如何使用计算机视觉技术自动检测图像中曲别针的数量。 如图&#xff1a; [1]使用灰度转换 由于彩色信息对于曲别针计数并不重要&#xff0c;我们将图像转换为灰度图&#xff0c;这样可以减少处理数据的复杂度&#xff0c;加速后续的…

史上最全,呕心沥血总结oracle推进SCN方法(六)

作者介绍&#xff1a;老苏&#xff0c;10余年DBA工作运维经验&#xff0c;擅长Oracle、MySQL、PG数据库运维&#xff08;如安装迁移&#xff0c;性能优化、故障应急处理等&#xff09; 公众号&#xff1a;老苏畅谈运维 欢迎关注本人公众号&#xff0c;更多精彩与您分享。前面介…

pycharm爬取BOSS直聘岗位信息

编译器:Pycharm 效果展示如图 简单原理描述:模拟人工动作爬取页面信息,运行脚本后代码自动打开浏览器获取相关信息,模拟人工进行页面跳转并自动抓取页面信息记录到表格中。 深入原理描述:页面翻转的时候会调用接口,接口中含有数据信息,定义数组存储需要的信息 需要引入…

419. 甲板上的战舰 Medium

给你一个大小为 m x n 的矩阵 board 表示甲板&#xff0c;其中&#xff0c;每个单元格可以是一艘战舰 X 或者是一个空位 . &#xff0c;返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说&#xff0c;战舰只能按 1 x k&#xff08;1 行…

猫头虎分享:2024应届生择业在大模型和智能机器人之间该如何选择?

猫头虎分享&#xff1a;2024应届生择业在大模型和智能机器人之间该如何选择&#xff1f; 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的…

前端三剑客之JavaScript基础入门

目录 ▐ 快速认识JavaScript ▐ 基本语法 &#x1f511;JS脚本写在哪? &#x1f511;注释 &#x1f511;变量如何声明? &#x1f511;数据类型 &#x1f511;运算符 &#x1f511;流程控制 ▐ 函数 ▐ 事件 ▐ 计时 ▐ HTML_DOM对象 * 建议学习完HTML和CSS后再…

C++:SLT容器-->queue

C:SLT容器-->queue 1. queue容器2. queue 常用接口 1. queue容器 先进先出队列允许从一端插入元素&#xff0c;从另一端删除元素队列中只有队头和队尾可以被外界使用&#xff0c;因此队列不允许有遍历行为队列中插入数据称为入队(push)&#xff0c;删除数据称为出队(pop) …

苹果AI来了,ios18史诗级发布

今天凌晨1点&#xff0c;苹果举行了WWDC开发者大会&#xff0c;正式发布了 全新iOS 18、iPadOS 18、watchOS 11、tvOS 18、macOS 等以及Apple Intelligence的个人化智能系统 苏音给大家汇总下&#xff0c;ios18的更新内容以及苹果的AI。 本次更新&#xff0c;官方带来的title…

FL Studio21永久免费破解中文版下载,让我这个音乐制作爱好者如获至宝!

FL Studio21永久免费破解中文版下载&#xff0c;让我这个音乐制作爱好者如获至宝&#xff01;&#x1f3b6; 这款软件功能强大&#xff0c;操作简单易上手。我可以轻松地创作出各种风格的音乐作品。无论是流行、摇滚还是电子音乐&#xff0c;都能轻松驾驭。&#x1f3a7; 使用F…

16.左侧导航菜单制作

左侧导航菜单制作 1. 修改路由&#xff0c;方便查看页面 index.ts import { RouteRecordRaw, createRouter, createWebHistory } from "vue-router"; import Layout from /layout/Index.vueconst routes: Array<RouteRecordRaw> [{path: /,name: home,comp…

【牛客面试必刷TOP101】Day31.BM60 括号生成和BM61 矩阵最长递增路径

文章目录 前言一、BM60 括号生成题目描述题目解析二、BM61 矩阵最长递增路径题目描述题目解析总结 前言 一、BM60 括号生成 题目描述 描述&#xff1a; 给出n对括号&#xff0c;请编写一个函数来生成所有的由n对括号组成的合法组合。 例如&#xff0c;给出n3&#xff0c;解集为…

Python办公MySQL(一):安装MySQL以及Navicat可视化工具(附送Navicat到期解决方法)

目录 专栏导读1、下载 MySQL Community Server2、安装3、安装Navicat4、连接刚刚安装的MySQL5、创建一个数据库方法1方法2 6、创建一张表方法1&#xff1a;准备一个test文件方法2&#xff1a; Navicat到期解决总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Pytho…

玩转ChatGPT:最全学术论文提示词分享【下】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 本篇文章&#xff0c;是系列文章「最全学术论文提示词」的完结篇。前两篇的内容请到文末链接处跳转&#x1f447;&#x1f3fb; 11.提交和发布 prompt 1&#xff1a;根据[期刊/会议]指…

【GreenHills】关于GHS加密狗license激活成功后打开软件提示无可用授权

【更多软件使用问题请点击亿道电子官方网站】 1、 问题场景 用于解决在使用加密狗license去激活旧版本的GHS的时候&#xff0c;激活页面显示激活成功&#xff0c;但是&#xff0c;打开软件显示无可用license&#xff08;如图2-1&#xff09;&#xff0c;重新激活现象还是一样的…