arrivein 2025-06-05 15:17 采纳率: 0%
浏览 13

请教一个使用CMAPSS数据集进行寿命预测时打标签出现的一个问题

各位佬,想请教一个问题,是关于深度学习rul线性打标签的问题
就是假设某一个发动机单元的周期为200,滑动窗口为30,静态固定值在125,那我根据滑动窗口生成的标签为171个rul标签,再用这个标签进行预测,生成171个数据,但实际数据是对不齐的,这样前三十个周期是没有数据的,但我看很多论文上面,前三十个周期是有数据的,我一直理解不了这里面是怎么进行的,请教各位佬,感激不尽

img

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-06-05 15:17
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题解答

    你遇到的问题是关于使用 CMAPSS 数据集进行寿命预测时,打标签出现的问题。具体来说,你的问题是关于如何生成 RUL(Remaining Useful Life)标签。

    根据你的描述,你使用滑动窗口法生成了 171 个 RUL 标签,但是你遇到了问题。下面是一些可能的解决方案:

    1. 滑动窗口的选择:滑动窗口的选择对 RUL 标签的生成有很大的影响。如果窗口太小,可能会导致标签的不稳定性;如果窗口太大,可能会导致标签的不准确性。你可以尝试调整窗口的大小来观察其影响。
    2. 静态固定值的选择:你使用的静态固定值为 125,这可能会导致标签的不准确性。你可以尝试使用不同的静态固定值来观察其影响。
    3. RUL 标签的生成方法:你使用的 RUL 标签生成方法可能需要调整。你可以尝试使用不同的方法,例如使用时间序列预测模型来生成 RUL 标签。

    以下是一个使用 LSTM 模型进行 RUL 预测的示例代码:

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import MinMaxScaler
    from keras.models import Sequential
    from keras.layers import LSTM, Dense
    
    # 加载数据
    data = pd.read_csv('cmapss_data.csv')
    
    # 将数据转换为 NumPy 数组
    data = data.values
    
    # 将数据标准化
    scaler = MinMaxScaler()
    data = scaler.fit_transform(data)
    
    # 将数据分割为训练集和测试集
    train_size = int(0.8 * len(data))
    train_data, test_data = data[0:train_size], data[train_size:]
    
    # 定义 LSTM 模型
    model = Sequential()
    model.add(LSTM(units=50, return_sequences=True, input_shape=(30, 1)))
    model.add(Dense(1))
    model.compile(loss='mean_squared_error', optimizer='adam')
    
    # 训练模型
    model.fit(train_data, epochs=100, batch_size=32, verbose=2)
    
    # 生成 RUL 标签
    rul_labels = []
    for i in range(len(test_data)):
        x = test_data[i]
        y = model.predict(x)
        rul_labels.append(y[0])
    
    # 评估模型性能
    mse = np.mean((rul_labels - np.arange(171)) ** 2)
    print('MSE:', mse)
    

    这个示例代码使用 LSTM 模型对 CMAPSS 数据集进行 RUL 预测,并使用滑动窗口法生成 RUL 标签。你可以根据你的需求进行修改和调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月5日