作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai
第一步:获取数据
我们可以利用 tushare 接口来获取数据,比如我们获取工商银行的股票数据:
import tushare as ts
data = ts.get_hist_data("601398")
数据输出格式是一个 pandas ,如下:
open high close ... v_ma5 v_ma10 v_ma20
date ...
2019-04-22 5.99 6.00 5.83 ... 3179236.05 2915893.46 3190728.34
2019-04-19 5.94 6.01 5.98 ... 3579982.45 3072136.56 3149786.24
2019-04-18 6.01 6.03 5.94 ... 3518181.52 3340076.29 3173315.84
2019-04-17 5.99 6.08 6.01 ... 3519477.42 3449884.61 3183199.14
2019-04-16 5.78 6.03 6.00 ... 3273362.22 3478066.74 3123925.73
2019-04-15 5.81 5.93 5.81 ... 2652550.87 3414787.79 3030022.02
2019-04-12 5.72 5.74 5.73 ... 2564290.67 3332893.99 2918306.97
2019-04-11 5.75 5.79 5.73 ... 3161971.05 3371523.99 2954697.86
2019-04-10 5.75 5.79 5.75 ... 3380291.80 3417784.59 2999389.41
2019-04-09 5.81 5.82 5.78 ... 3682771.25 3384488.36 3015923.24
第二步:我们将原始数据整理成训练数据和测试数据,代码如下:
X_train = []
y_train = []
for i in range(10, data.shape[0]):
tmp = []
tmp.append(data.ix[i]['open'])
tmp.append(data.ix[i]['high'])
tmp.append(data.ix[i]['close'])
tmp.append(data.ix[i]['low'])
X_train.append(tmp)
tmp = (data.ix[i]['close'] - data.ix[i]['open']) / data.ix[i]['open']
y_train.append(tmp)
X_test = X_train[:10]
print(X_train.shape)
print(y_train.shape)
我们打印了输入数据的大小和标签的大小,并且我们把训练数据的前十行作为了我们的测试数据。
第三步:训练我们的模型,这里我采用最简单的线性回归来拟合我们的数据,利用 sklearn 包就可以很轻松的实现这个目标,代码如下:
linreg = LinearRegression()
linreg.fit(X_train, y_train)
第四步:我们可以测试我们的模型,来预测股票价格波动,代码如下:
y_pred = linreg.predict(X_test)
print(y_pred)
最终程序输出为:
[-0.00461759 0.01862084 0.01682816 -0.00028103 0.00819028 0.01703901
-0.0067524 0.00844903 -0.00670531 -0.00993229]
我们预测了 10 天的工商银行股价波动,看来跌的不少啊。
至此,我们如何构建一个简单的线性回归来预测股票浮动已经完成了,当然这个模型非常的差劲,我们可以在数据特征上面做一些工作来提高精度,也可以选用别的模型来提高精度。
小伙伴,赶快动手自己做吧!!