基于机器学习和深度学习的NASA涡扇发动机剩余使用寿命预测(C-MAPSS数据集,Python代码,ipynb 文件)

以美国航空航天局提供的航空涡扇发动机退化数据集为研究对象,该数据集包含多台发动机从启动到失效期间多个运行周期的多源传感器时序状态监测数据,它们共同表征了发动机的性能退化情况。为减小计算成本,需要对原始多源传感器监测数据进行数据筛选,剔除与发动机性能退化情况无关的传感器数据项,保留有用数据,为对多源传感器数据进行有效甄别,考虑综合多种数据筛选方式,以保证筛选结果的准确性。

主要内容如下:

Data Visualization:

  1. Maximum life chart and engine life distribution chart for each unit.

  2. Correlation coefficient chart between sensors and RUL.

  3. Line chart showing the relationship between sensors and RUL for each engine.

  4. Value distribution chart for each sensor.

Feature Engineering:

  1. Based on the line chart showing the relationship between sensors and engine RUL, sensors 1, 5, 10, 16, 18, and 19 are found to be constant. Hence, these features are removed. Finally, the data is normalized.

Machine Learning Model:

  1. "Rolling mean feature" is added to the data, representing the average value of features over 10 time periods.

  2. Seven models are built: Linear regression, Light GBM, Random Forest, KNN, XGBoost, SVR, and Extra Tree.

  3. MAE, RMSE, and R2 are used as evaluation metrics. SVR performs the best with an R2 of 0.61 and RMSE = 25.7.

Deep Learning Model:

  1. The time window length is set to 30, and the shift length is set to 1. The training and test data are processed to be in a three-dimensional format for input to the models.

  2. Six deep learning models are built: CNN, LSTM, Stacked LSTM, Bi-LSTM, GRU, and a hybrid model combining CNN and LSTM.

  3. Convergence charts and evaluation of test data predictions are plotted. Each model has an R2 higher than 0.85, with Bi-LSTM achieving an R2 of 0.89 and RMSE of 13.5.

机器学习模型所用模块:

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport randomimport warningswarnings.filterwarnings('ignore')
from sklearn.metrics import mean_squared_error, r2_score,mean_absolute_errorfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScaler,MinMaxScaler
from sklearn.linear_model import LinearRegressionfrom sklearn.svm import SVRfrom sklearn.ensemble import RandomForestRegressor,ExtraTreesRegressorfrom sklearn.neighbors import KNeighborsRegressorfrom xgboost import XGBRegressorfrom lightgbm import LGBMRegressor

结果如下:

图片

图片

图片

图片

图片

图片

图片

深度学习所用模块:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import random
import time
import warnings
warnings.filterwarnings('ignore')

from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler,MinMaxScaler
#from google.colab import drive
#drive.mount('/content/drive')

# model
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM, Conv1D
from tensorflow.keras.layers import BatchNormalization, Dropout
from tensorflow.keras.layers import TimeDistributed, Flatten
from tensorflow.keras.layers.experimental import preprocessing
from tensorflow.keras.optimizers import Adam
完整代码可通过知乎学术咨询获得:https://www.zhihu.com/consult/people/792359672131756032?isMe=1
from tensorflow.keras.callbacks import ReduceLROnPlateau,EarlyStopping

图片

图片

图片

图片

图片

图片

图片

完整代码可通过知乎学术咨询获得.

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-15 00:04:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-15 00:04:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-15 00:04:01       82 阅读
  4. Python语言-面向对象

    2024-06-15 00:04:01       91 阅读

热门阅读

  1. Linux排查问题常用命令

    2024-06-15 00:04:01       31 阅读
  2. BFS 解决 FloodFill 算法(C++)

    2024-06-15 00:04:01       39 阅读
  3. C++ Primer 学习 -- Day 1

    2024-06-15 00:04:01       23 阅读
  4. 如何判断 是否 需要 CSS 中的媒体查询

    2024-06-15 00:04:01       34 阅读
  5. hive sql 下 日期时间加 一分钟的 语句

    2024-06-15 00:04:01       37 阅读
  6. prometheus relabel_configs 标签重写

    2024-06-15 00:04:01       30 阅读
  7. Django模板的继承与使用

    2024-06-15 00:04:01       40 阅读
  8. 空白服务器安装系统

    2024-06-15 00:04:01       29 阅读
  9. elementui table超出两行显示...鼠标已入tip显示

    2024-06-15 00:04:01       23 阅读
  10. web基础与http协议

    2024-06-15 00:04:01       27 阅读
  11. 什么是虚拟展厅?有何优势和特点?

    2024-06-15 00:04:01       26 阅读