当前位置:   article > 正文

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

c-mapss rul怎么取的

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

2.环境库

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

2.1项目文件夹 

CMaps是数据集

code.py是四个程序的代码

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

show.py的如下

  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib as plt
  4. import seaborn as sns
  5. from sklearn.ensemble import RandomForestRegressor
  6. import sklearn
  7. from sklearn.metrics import mean_squared_error, r2_score
  8. import os
  9. from sklearn.model_selection import train_test_split
  10. from sklearn.preprocessing import StandardScaler
  11. import random
  12. import warnings
  13. # 打印库的版本信息
  14. print("pandas 版本:", pd.__version__)
  15. print("numpy 版本:", np.__version__)
  16. print("matplotlib 版本:", plt.__version__)
  17. print("seaborn 版本:", sns.__version__)
  18. 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 

 

 

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

 

  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib as plt
  4. import seaborn as sns
  5. from sklearn.ensemble import RandomForestRegressor
  6. import sklearn
  7. from sklearn.metrics import mean_squared_error, r2_score
  8. import os
  9. from sklearn.model_selection import train_test_split
  10. from sklearn.preprocessing import StandardScaler
  11. import random
  12. import warnings
  13. #数据集和代码的压缩包:https://mbd.pub/o/bread/ZZWUmZlw

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/617789
推荐阅读
相关标签
  

闽ICP备14008679号