python 神经网络可以输出连续值_lstm神经网络异常输出相同的值

我目前正在研究并试图改进一个python脚本,其目的是预测股市走势(一个非常简单的脚本)。在

问题:我得到了相同的输出值,但我真的不明白为什么,因为它应该更像这个图表(红线是我应该得到的预测,蓝线是真实的数据):https://i.stack.imgur.com/dvQvY.png

代码如下:import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

from pandas import datetime

import math, time

import itertools

from sklearn import preprocessing

import datetime

from operator import itemgetter

from sklearn.metrics import mean_squared_error

from math import sqrt

from keras.models import Sequential

from keras.layers.core import Dense, Dropout, Activation

from keras.layers.recurrent import LSTM

def get_stock_data(stock_name, normalized=0):

url = 'http://chart.finance.yahoo.com/table.csv?s=%s&a=11&b=15&c=2011&d=29&e=10&f=2016&a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现LSTM神经网络多输入单输出Python代码示例如下: 首先,我们需要导入需要的库: ```python import numpy as np import pandas as pd from keras.models import Sequential from keras.layers import LSTM, Dense ``` 接下来,我们需要准备训练数据和测试数据。假设我们有两个输入变量 x1 和 x2,和一个输出变量 y。我们可以将它们存储在两个矩阵 X1 和 X2 中,以及一个向量 y 中。 ```python # 训练数据 X1_train = np.random.rand(100, 10) X2_train = np.random.rand(100, 5) y_train = np.random.rand(100, 1) # 测试数据 X1_test = np.random.rand(10, 10) X2_test = np.random.rand(10, 5) ``` 接下来,我们需要定义模型。我们可以使用 Sequential 模型,添加两个 LSTM 层和一个 Dense 层,其中 Dense 层只有一个神经元,因为我们只需要一个输出变量。 ```python model = Sequential() # 添加第一个 LSTM 层 model.add(LSTM(units=32, return_sequences=True, input_shape=(X1_train.shape[1], 1))) model.add(LSTM(units=16, return_sequences=False)) # 添加第二个 LSTM 层 model.add(LSTM(units=16, return_sequences=False)) # 添加 Dense 层 model.add(Dense(units=1, activation='linear')) # 编译模型 model.compile(optimizer='adam', loss='mean_squared_error') ``` 接下来,我们可以训练模型,使用 fit() 函数,训练数据和标签都是多维数组。 ```python model.fit([X1_train, X2_train], y_train, epochs=10, batch_size=10) ``` 最后,我们可以使用 predict() 函数,对测试数据进行预测。 ```python y_pred = model.predict([X1_test, X2_test]) ``` 完整的代码示例如下: ```python import numpy as np import pandas as pd from keras.models import Sequential from keras.layers import LSTM, Dense # 训练数据 X1_train = np.random.rand(100, 10) X2_train = np.random.rand(100, 5) y_train = np.random.rand(100, 1) # 测试数据 X1_test = np.random.rand(10, 10) X2_test = np.random.rand(10, 5) # 定义模型 model = Sequential() # 添加第一个 LSTM 层 model.add(LSTM(units=32, return_sequences=True, input_shape=(X1_train.shape[1], 1))) model.add(LSTM(units=16, return_sequences=False)) # 添加第二个 LSTM 层 model.add(LSTM(units=16, return_sequences=False)) # 添加 Dense 层 model.add(Dense(units=1, activation='linear')) # 编译模型 model.compile(optimizer='adam', loss='mean_squared_error') # 训练模型 model.fit([X1_train, X2_train], y_train, epochs=10, batch_size=10) # 预测测试数据 y_pred = model.predict([X1_test, X2_test]) ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值