• lstm时间序列 深度学习


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 2401_82446207 2024-05-17 11:38 采纳率: 0% 浏览 3 首页/ 人工智能 / lstm时间序列 深度学习 神经网络tensorflowlstm tensorflow为什么我训练好的模型,进行测试的时候还要读取测试集的数据呢 测试集的数据不是我们预测出来的吗(初学者 别🐎我蠢555) 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    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模型进行预测,并将预测结果反归一化后添加到原始数据集中。

      推荐相关链接

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

      展开全部

      评论 编辑记录
    • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-17 11:38
      关注

      在深度学习中,测试时需要提供未见过的测试数据给模型做预测,以评估模型性能。

      以上回复有部分引自免费微信小程序:皆我百晓生。 如问题尚未解决,还请稍待,如有疑问请回复进一步沟通。

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    8+非肿瘤+线粒体+实验生信思路解析
    影响工业产品设计的主要因素
    Vue中v-model原理
    Error-onnxruntime.capi.onnxruntime_pybind11_state.Fail:
    神经网络优化篇:详解TensorFlow
    SpringBoot使用Swagger2创建API文档
    自动还款业务事故案例,与金融场景幂等性思考
    端到端自动驾驶:终局还是误区?
    MindSponge分子动力学模拟——自建力场(2024.03)
    高薪程序员&面试题精讲系列150之电商专题(上)-你们的电商项目有什么特色?是B2B还是B2C、还是C2C的?直播电商你了解吗?
  • 原文地址:https://ask.csdn.net/questions/8104897