2401_82446207 2024-05-17 11:38 采纳率: 0%
浏览 3

lstm时间序列 深度学习

tensorflow
为什么我训练好的模型,进行测试的时候还要读取测试集的数据呢 测试集的数据不是我们预测出来的吗(初学者 别🐎我蠢555

img


  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-17 11:38
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题

    您提问的目的是想要理解在使用LSTM(长短期记忆网络)进行时间序列预测时,为什么在测试阶段仍然需要读取测试集的数据,并且您对这个过程存在一些疑惑。

    图片内容

    您上传的图片中包含了一段Python代码,这段代码描述了如何使用TensorFlow和Keras框架进行LSTM模型的训练和预测。代码的主要步骤包括:

    1. 读取文件2中的数据并提取输入数据。
    2. 使用之前训练时的归一化方法对输入数据进行归一化。
    3. 构建一个与训练时相同结构的LSTM模型。
    4. 加载训练时保存的最优权重。
    5. 使用模型对归一化后的输入数据进行预测。
    6. 将预测结果反归一化。
    7. 将预测结果添加到文件2的数据集中。

    问题出现原因

    您可能疑惑的原因是,您认为测试集的数据应该是模型预测出来的,而不是事先准备好的。在机器学习中,测试集通常用于评估模型在未见过的数据上的表现,以检验模型的泛化能力。因此,在测试阶段,我们仍然需要使用测试集的数据,而不是直接使用模型预测的结果。

    问题解决方案

    为了解决您的疑惑,我将提供一些解释和代码的修正建议:

    1. 理解测试集的作用:测试集用于评估模型性能,确保模型没有过拟合到训练数据上。

    2. 修正代码:图片中的代码有一些语法错误,我将提供修正后的代码。

    提供代码

    import pandas as pd
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import LSTM, Dense
    from sklearn.preprocessing import MinMaxScaler
    
    # 假设scaler和scaler_output是之前训练模型时使用的归一化和反归一化对象
    # 请确保它们已经被正确地保存和加载
    
    # 读取文件2中的数据
    file2_data = pd.read_csv('file2.csv')  # 请替换为文件2的实际文件名
    # 提取输入数据
    input_data_file2 = file2_data.iloc[:, 1:4].values
    # 归一化输入数据,使用文件1的最大最小值进行归一化
    input_data_normalized_file2 = scaler.transform(input_data_file2)
    
    # 构建与训练时相同结构的LSTM模型
    model_file2 = Sequential()
    model_file2.add(LSTM(units=50, input_shape=(input_data_normalized_file2.shape[1], 1)))  # 假设时间步长为1
    model_file2.add(Dense(9, activation='linear'))
    
    # 加载训练时保存的最优权重
    model_file2.load_weights('best_weights.h5')
    
    # 预测文件2中的数据
    predictions = model_file2.predict(input_data_normalized_file2)
    
    # 反归一化预测结果
    predictions_denormalized = scaler_output.inverse_transform(predictions)
    
    # 将预测结果添加到文件2中
    file2_data.iloc[:, 4:] = predictions_denormalized
    

    代码运行方式

    • 确保您的环境中安装了Python、TensorFlow、Keras和scikit-learn。
    • 将上述代码保存为.py文件。
    • 在命令行或IDE中运行该文件。

    代码预期运行结果

    代码将加载测试数据集,使用训练好的LSTM模型进行预测,并将预测结果反归一化后添加到原始数据集中。

    推荐相关链接

    请注意,您需要根据实际情况调整代码中的文件名、模型结构和权重文件路径等。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月17日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图