利用动态时间规整(DTW)技术实现对机械寿命预测(基于NASA C-MAPSS数据的剩余使用寿命RUL预测,Python代码,DTW不属于深度学习,但预测效果更容易被解释)

1.运行效果:利用动态时间规整(DTW)技术实现对机械寿命预测(基于NASA C-MAPSS数据的剩余使用寿命RUL预测,Python代码,DTW不属于深度学习,但预测效果更_哔哩哔哩_bilibili

库配置

2。DTW内容

动态时间规整(DTW)是机器学习和时间序列分析的一部分。DTW是一种用于测量两个时间序列之间相似度的技术。它可以用于时间序列分类、聚类、匹配等机器学习任务中。

DTW的主要思想是考虑时间序列之间在不同时间步长下的相似性,而不仅仅是简单地比较它们的点对点距离。这使得DTW在处理时间序列数据时非常有用,因为它可以应对时间序列之间长度不同、速度不同等问题。

DTW在很多领域都有应用,包括语音识别、手写体识别、生物信息学、金融分析等。在机器学习中,DTW可以用于构建时间序列模型、异常检测、时间序列预测等任务。

3.数据来源(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. 导入所需的Python库。

  2. 读取训练集(train_df1)、测试集(test_df1)和真实寿命数据(truth_df1

  3. 对训练集进行标签贴附,计算剩余使用寿命(RUL)

  4. 对训练数据和测试数据进行归一化处理,使用MinMaxScaler

  5. 去除部分无意义列

  6. 选择特定的监控数据列

  7. 使用PCA对监控数据进行降维,保留主成分

  8. 使用支持向量回归(SVR)对训练数据和测试数据进行平滑处理

  9. 使用动态时间规整(DTW)距离计算训练数据和测试数据之间的相似性

  10. 进行异常值去除,排除可能的异常数据点

  11. 实现寿命预测模型,计算预测的RUL

  12. 计算模型的性能指标,包括均方根误差(RMSE)、平均绝对误差(MAE)、均方根百分比误差(MAPE)等

  13. 绘制预测结果图表,包括预测曲线和误差直方图

  14. 输出预测结果到CSV文件中

4.效果

整体文件夹

CMaps是数据集文件夹

 RUL_pred表格存的是DTW.py运行完测试集的预测值

 RUL_true表格存的是DTW.py运行完测试集的真实值

效果图

# 去除标记列,仅留下有用的监控数据

测试集的预测效果 

测试集的误差直方图 

 

 

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

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from tqdm import tqdm
import random
from sklearn import preprocessing
from sklearn.decomposition import PCA
import matplotlib.cm as cm
import heapq
#代码和数据集压缩包:https://mbd.pub/o/bread/ZZWUlZdp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

深度学习的奋斗者

你的鼓励是我努力的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值