def para_ann(dataframe):
### Training and Testing Set
random.seed(0)
sample_index = random.sample(list(dataframe.index),int(1*len(dataframe.index)))
para_index = random.sample(sample_index, int(0.5*len(sample_index)))
op_df_train = dataframe.ix[para_index]
op_df_holdout = dataframe.drop(para_index)
columns = ['SMA_10','Momentum','stoch_K', 'WMA_10', 'MACD','A/D' , 'Volume']
X = op_df_train[columns].as_matrix()
Y = op_df_train['Adj Close'].as_matrix()
### ANN model
lbfgs_ann = MLPClassifier(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=(5, 2), random_state=1).fit(X,Y)
X_holdout = op_df_holdout[columns].as_matrix()
Y_holdout = op_df_holdout['Adj Close'].as_matrix()
Z = pd.DataFrame(np.zeros((1,1)), columns = ['ANN with backpropagation'])
Y_result = Y_holdout
pred = lbfgs_ann.predict(X_holdout)
Y_result = np.vstack((Y_result, np.array(pred)))
Z.iloc[0,0] = sum(pred==Y_holdout)/len(pred)
Y_result = Y_result.T
return Z, Y_result
评论列表
文章目录