Python+MongoDB LSTM生成模型实战指南

2026-06-18阅读 0热度 0
Python
执行 MongoDB 与 TensorFlow 环境配置,安装 pymongo 驱动和 TensorFlow 深度学习框架。以下命令即可完成依赖安装:
pip install pymongo tensorflow
连接 MongoDB 实例,从指定集合中提取用于时间序列预测的原始数据。假设 `stock_prices` 集合存储了每日收盘价,通过升序排序获取历史记录,构造输入-输出样本对:
from pymongo import MongoClient

# 连接到 MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['stock_db']
collection = db['stock_prices']

# 获取数据,按日期升序排列
data = collection.find().sort('date', 1)

# 构造输入序列和输出标签
input_seq = []
output_labels = []
for i in range(len(data)-1):
    input_seq.append(data[i]['price'])
    output_labels.append(data[i+1]['price'])

# 看看前几个样本
print("输入序列: ", input_seq[:5])
print("输出标签: ", output_labels[:5])
数据准备完毕后,基于 Keras 构建单层 LSTM 模型。该模型接收单个时间步(上一时刻价格),输出下一时刻预测值:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense

# 构建模型
model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(1, 1)))
model.add(Dense(1))

# 编译
model.compile(optimizer='adam', loss='mse')

# 调整数据形状:将 (样本数, ) 转为 (样本数, 1, 1)
input_seq = np.array(input_seq).reshape(len(input_seq), 1, 1)
output_labels = np.array(output_labels)

# 训练
model.fit(input_seq, output_labels, epochs=100, verbose=0)
利用训练好的模型对下一时间点进行推理。将最后一个已知的价格数据重新整形后输入模型:
# 取最后一个已知价格,形状调整为 (1,1,1)
last_known_price = input_seq[-1].reshape(1, 1, 1)

# 预测
predicted_price = model.predict(last_known_price)

print("预测价格: ", predicted_price)
本例仅演示基础流程,实际生产环境需引入更多特征(如成交量、移动均线)、扩展历史窗口长度,并针对超参数(如 LSTM 单元数、学习率)进行调优。掌握此基线后,可依据业务场景自定义数据管道与模型架构。
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策