利用神经网络实现股票预测 | 附Pyhon代码

神经网络(NeuralNetworks)是一种用训练数据拟合目标函数的黑箱模型,只要数据量足够大,它可以拟合出输入到输出之间的任意函数关系。

本篇教程我们将使用神经网络进行股市的预测,利用数据样本学习,得到相关因素预测股票走势。

01

问题描述

1)数据

首先我们预设一组数据,下图为股票上证指数2019年07月到2019年09月的30天开盘价格和收盘价格。

▍股票开盘和收盘价格

2)网络结构

设计三层神经网络,隐含层包括25个节点,利用所设计的神经网络来预测股票的收盘均价。

3)可视化

可建立一个30行2列的矩阵存储股票数据,矩阵的第一列输入上列数据中的股票开盘价格,第二列输入股票的收盘价格,如果股票的收盘价格高于开盘价格则用红色显示,反之则用绿色显示,可视化股票数据如下图所示。采用本实例所设计的神经网络预测股票收盘均价,并可视化预测结果。

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,利用BP神经网络预测房价,我们可以按照以下步骤进行: 1. 收集数据集 2. 数据预处理 3. 构建BP神经网络模型 4. 训练模型 5. 测试模型 下面是基于Python代码实现: 1. 收集数据集 我们可以从公开数据集中获取房价数据,例如使用sklearn中自带的波士顿房价数据集。 ```python from sklearn.datasets import load_boston boston = load_boston() X = boston.data y = boston.target ``` 2. 数据预处理 我们需要对数据进行标准化处理,让所有特征处于同一规模范围内。 ```python from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X = scaler.fit_transform(X) ``` 3. 构建BP神经网络模型 我们使用Keras构建BP神经网络模型。 ```python from keras.models import Sequential from keras.layers import Dense model = Sequential() model.add(Dense(13, input_dim=13, activation='relu')) model.add(Dense(6, activation='relu')) model.add(Dense(1, activation='linear')) ``` 4. 训练模型 我们使用adam优化器和均方误差损失函数训练模型。 ```python model.compile(loss='mse', optimizer='adam') model.fit(X, y, epochs=100, batch_size=10) ``` 5. 测试模型 我们将模型用于预测新的房价数据,并输出预测结果。 ```python import numpy as np new_data = np.array([[0.1, 18.0, 2.31, 0.0, 0.538, 6.575, 65.2, 4.0900, 1.0, 296.0, 15.3, 396.9, 4.98]]) new_data = scaler.transform(new_data) prediction = model.predict(new_data) print(prediction[0][0]) ``` 完整代码如下: ```python from sklearn.datasets import load_boston from sklearn.preprocessing import StandardScaler from keras.models import Sequential from keras.layers import Dense import numpy as np # 收集数据集 boston = load_boston() X = boston.data y = boston.target # 数据预处理 scaler = StandardScaler() X = scaler.fit_transform(X) # 构建BP神经网络模型 model = Sequential() model.add(Dense(13, input_dim=13, activation='relu')) model.add(Dense(6, activation='relu')) model.add(Dense(1, activation='linear')) # 训练模型 model.compile(loss='mse', optimizer='adam') model.fit(X, y, epochs=100, batch_size=10) # 测试模型 new_data = np.array([[0.1, 18.0, 2.31, 0.0, 0.538, 6.575, 65.2, 4.0900, 1.0, 296.0, 15.3, 396.9, 4.98]]) new_data = scaler.transform(new_data) prediction = model.predict(new_data) print(prediction[0][0]) ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值