参赛结束了,最后结果一百多名,先把清洗好的数据和预测算法文件记录下来。
使用的完全代码和数据
https://download.youkuaiyun.com/download/infent/10693927
代码注释如下
# -*- encoding:utf-8 -*-
import pandas as pd
import numpy as np
import sys
from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
from keras.models import Sequential
from sklearn.preprocessing import MinMaxScaler
# 窗口长度
LEN_SEQ = 2
np.random.seed(0)
def load_one(data, x):
global LEN_SEQ
#ticker = data.query("TICKER_SYMBOL=="+str(x)) # 个股
#ticker = data.query("TICKER_SYMBOL==1 or TICKER_SYMBOL==5")
ticker =data.loc[data['TICKER_SYMBOL']==x]
#ticker = data.query("TICKER_SYMBOL==@x")
print('query the data')
#print(ticker)
arr = ticker.ix[:,[1,2,3,4]] # 矩阵
# print(arr)
# 做时序差分
train, label = [], []
b_size = 4
for i in range(LEN_SEQ,0,-1):
train.append(arr.shift(i))
label += [('var%d(t-%d)' % (j+1,i)) for j in range(b_size)]
for i in range(LEN_SEQ):
train.append(arr.shift(-i))
if i ==0:
label += [('var%d(t)' %(j+1)) for j in range(b_size)]