基于NASA C-MAPSS数据的剩余机械寿命RUL预测,Python代码(添加了非常详细中文注释),线性回归LR、支持向量回归SVR、随机森林回归RF、xgboost模型

1.运行效果:基于NASA C-MAPSS数据的剩余机械寿命RUL预测,Python代码(添加了非常详细中文注释),线性回归LR、支持向量回归SVR、随机森林回归RF、xgb_哔哩哔哩_bilibili

2.环境库

如果库版本不一样, 一般也可以运行,这里展示我运行时候的库版本,是为了防止你万一在你的电脑上面运行不了,可以按照我的库版本进行安装并运行

2.1项目文件夹 

CMaps是数据集

code.py是四个程序的代码

show.py是显示目前你电脑的库环境,容易让你知道你的库版本是多少 

show.py的如下

import pandas as pd
import numpy as np
import matplotlib as plt
import seaborn as sns
from sklearn.ensemble import RandomForestRegressor
import sklearn
from sklearn.metrics import mean_squared_error, r2_score
import os
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import random
import warnings

# 打印库的版本信息
print("pandas 版本:", pd.__version__)
print("numpy 版本:", np.__version__)
print("matplotlib 版本:", plt.__version__)
print("seaborn 版本:", sns.__version__)
print("scikit-learn 版本:", sklearn.__version__)

2.2.数据来源(NASA数据集) https://www.nasa.gov/intelligent-systems-division

数据文件夹 

数据介绍: 

当前基于机器学习的剩余寿命预测方法的研究异常火爆,其中C-MAPSS数据集在该领域的使用非常广泛,为了方便各位同仁的学习和理解,借此文章向大家简单介绍一下。
1)首先说明,C-MAPSS数据集为模拟数据。这是由于航空发动机的构造复杂,其气路变化复杂多变;并且航空发动机的运行数据通常作为各个航空公司的保密数据,一般不易获取。因此由NASA使用Commercial Modular Aero-Propulsion System Simulation软件生成了该套数据集,其目的是结合发动机的运行特点,来测试不同的模型性能。
2)NASA提出的涡扇引擎退化监测数据集(C-MPASS)的结构简图如下所示。主要构件包含风扇、低压压气机(LPC)、高压压气机(HPC)、燃烧室、高压涡轮(HPT)、低压涡轮(LPT)及其喷管。


 其子数据集共四个,每个子类都有不同数量的工况条件和故障状态。C-MAPSS数据如下图所示

 当前的论文研究中,主要以单工况、单故障状态的FD001数据集为主(笔者认为该数据集相对简单,相比于多工况数据,不需要额外的数据处理)。以FD001为例,其进一步分为训练和测试子集,其包含1种故障状态和1种工况。训练集Train_FD001.txt收录了100台保持全寿命循环状态的发动机参数信息;测试集Test_FD001.txt收录了100台非全寿命循环状态的发动机参数信息,即仅包含发动机故障前某个时间终止的多个传感器数据,根据给定的运行参数对每台发动机的RUL进行实时的预测;RUL_FD001.txt中收录了测试集中100台发动机的RUL真实值。每台发动机的参数信息包含3种工作状况监测参数(飞行高度,马赫数,油门杆角度)和21个性能监测参数,其24个传感器监测参数如下图所示。

 3.整体代码的流程

  1. 导入所需的库:

    • 导入各种数据处理、可视化和机器学习库,如pandas、numpy、matplotlib、seaborn、sklearn等。
  2. 读取训练集和测试集数据:

    • 使用pd.read_csv函数读取训练集和测试集数据,分别存储在dftraindfvalid中。
  3. 数据探索:

    • 对训练数据进行探索性数据分析,包括查看数据形状、统计信息、缺失值等信息。
    • 可视化展示发动机寿命(Remaining Useful Life)的分布情况。
    • 创建传感器信号字典,以便后续使用。
    • 绘制传感器信号的趋势图和箱线图。
  4. 特征工程:

    • 添加剩余寿命(RUL)列到训练数据。
    • 使用MinMaxScaler对特征数据进行归一化处理。
    • 创建新的特征数据集X_train、X_test、X_valid,并删除不需要的列。
  5. 模型训练与评估:

    • 实例化线性回归模型(Linear_Regression),并使用训练数据拟合模型,然后预测并评估模型性能。
    • 实例化支持向量回归模型(SVR),并使用训练数据拟合模型,然后预测并评估模型性能。
    • 实例化随机森林回归模型(RandomForestRegressor),并使用训练数据拟合模型,然后预测并评估模型性能。
    • 使用XGBoost回归模型进行训练和评估。
  6. 最后,绘制真实数据和预测数据的对比图,并输出模型性能评估的指标。

4.效果

4.1.原始数据可视化(通过对原始数据可视化,可以更清楚了解数据的一些特征,原始数据(因为有21个传感器)可视化图太多,这里挑选一些代表性的进行展示

 

 

 

 

 

 

 

 

模型预测效果 

LR模型:
train set RMSE:56.19869318681088, R2:0.3439361345919162
test set RMSE:54.264009074691856, R2:0.35713062175493715
valid set RMSE:34.84962228223509, R2:0.2967064952591343

 

SVR模型:
train set RMSE:43.56448464126648, R2:0.605761670162996
test set RMSE:47.26718449996112, R2:0.5122262167433573
valid set RMSE:34.84962228223509, R2:0.2967064952591343 

 

 

随机森林模型RF:
train set RMSE:15.408303170220156, R2:0.9506822432050425
test set RMSE:44.36383009860364, R2:0.5703082128383993
valid set RMSE:30.653618024631285, R2:0.45586841183607596 

 

 

xgboost模型:
train set RMSE:44.409935462338545, R2:0.5903113156901276
test set RMSE:44.40636796196491, R2:0.5694838055038836
valid set RMSE:22.744005816098603, R2:0.7004465186237991 

 

 

对项目感兴趣的,可以关注最下方一行

 

import pandas as pd
import numpy as np
import matplotlib as plt
import seaborn as sns
from sklearn.ensemble import RandomForestRegressor
import sklearn
from sklearn.metrics import mean_squared_error, r2_score
import os
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import random
import warnings

#数据集和代码的压缩包:https://mbd.pub/o/bread/ZZWUmZlw

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度学习的奋斗者

你的鼓励是我努力的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值