继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

人工智能-3分钟快速搭建股价预测模型

2020-02-11 17:57:116944浏览

flare_zhao

1实战 · 12手记 · 8推荐
TA的实战

最近时常有小伙伴问flare老师,听说AI可以帮助实现股价预测,这是真的吗?
如果可以的话,那应该也很复杂吧?可能几千上万行代码,想想就恐怖。
今天,flare老师教大家快速搭建一个简化版的股价预测模型,核心代码不过几十行

Let’s start!

任务:基于平安银行2018年6月-2019年6月数据,建立模型,实现对第二天股票价格的动态预测

1、获取数据并加载

数据源:链接:https://pan.baidu.com/s/1Uh29EFpaiGO7JHN0jSytBA
提取码:ku7f
#加载训练数据
import pandas as pd
import numpy as np
data = pd.read_csv(‘payh-1806-1906.csv’)
data.head()
图片描述

2、数据的可视化(看看数据的样子)

#提取数据
close_price = data.loc[:,‘close’]
#数据可视化
%matplotlib inline
from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(7,5))
plt.plot(close_price)
plt.title(‘stock price’)
plt.xlabel(‘data’)
plt.ylabel(‘price’)
plt.show()
图片描述

3、数据的预处理(把数据转换为可以用于模型的格式)

#数据预处理,为rnn输入做准备
#define method to extract X and y
def extract_data(data,time_step):
X = []
y = []
#0,1,2,3…9:10个样本;time_step=8;0,1…7;1,2…8;2,3…9三组(两组样本)
for i in range(len(data)-time_step):
X.append([a for a in data[i:i+time_step]])
y.append(data[i+time_step])
X = np.array(X)
X = X.reshape(X.shape[0],X.shape[1],1)
return X, y
time_step = 8
#define X and y
X,y = extract_data(close_price,time_step)

4、建立预测模型(7行代码)

建立RNN模型
from keras.models import Sequential
from keras.layers import Dense,SimpleRNN
model = Sequential()
model.add(SimpleRNN(units=5, input_shape=(time_step,1),activation=‘relu’))
model.add(Dense(units=1,activation=‘linear’))
model.compile(optimizer=‘adam’,loss=‘mean_squared_error’)
model.summary()
#模型训练
model.fit(X,y,batch_size=30,epochs=200)
#模型预测
y_predict = model.predict(X)

5、看效果!

图片描述

6、对2019年下半年的新数据做预测

load new data
data_new = pd.read_csv(‘payh-1906-2002.csv’)
close_price_new = data_new.loc[:,‘close’]
#define X and y
X_new,y_new = extract_data(close_price_new,time_step)
#对新数据预测
y_new_predict = model.predict(X_new)
#可视化预测结果
fig3 = plt.figure(figsize=(7,5))
plt.plot(y_new,label=‘实际股价’)
plt.plot(y_new_predict,label=‘预测股价’)
plt.title(‘新数据股价预测’)
plt.xlabel(‘日期’)
plt.ylabel(‘股价’)
plt.show()
图片描述

What we can learn from the result??

  1. 简单的循环神经网络模型对股价的趋势有较好的预测和跟踪效果;
  2. 针对为用于训练的新的股价数据,该模型的结果也可以用于决策参考
  3. 借助AI工具实现股价预测其实很简单,当然,这个模型还很粗糙,如果要达到好的效果,很多地方可以优化

finally:flare老师的实战课程“零基础入门人工智能:系统学习+实战”课程已经上线,欢迎小伙伴们订阅,和flare老师一起学习AI,掌握AI工具,解决实际问题。

打开App,阅读手记
4人推荐
发表评论
随时随地看视频慕课网APP

热门评论

# 2.解析 data_url 对象内容,并python 的json化
data_url = resp.read().decode('utf-8')
#将返回的json格式的数据转化为python对象,json数据转化成了python中的字典,按照字典方法读取数据
data_json = json.loads(data_url)
print(data_json["data"]["klines"])


百度网盘的数据没有了??

百度网盘是空的???

查看全部评论