def ai_mul_var_tst(mx, df_train, df_test, nepochs=200, nsize=128, ky0=5): x_train, y_train = df_train['x'].values, df_train['y'].values x_test, y_test = df_test['x'].values, df_test['y'].values # mx.fit(x_train, y_train, epochs=nepochs, batch_size=nsize) # y_pred = mx.predict(x_test) df_test['y_pred'] = zdat.ds4x(y_pred, df_test.index, True) dacc, _ = ai_acc_xed2x(df_test.y, df_test['y_pred'], ky0, False) # return dacc
mx.summary() plot_model(mx, to_file='tmp/lstm010mx.png') #4 模型训练 print('\n#4 模型训练 fit') tbCallBack = keras.callbacks.TensorBoard(log_dir=rlog, write_graph=True, write_images=True) tn0 = arrow.now() mx.fit(x_train, y_train, epochs=2000, batch_size=512 * 24, callbacks=[tbCallBack]) tn = zt.timNSec('', tn0, True) mx.save('tmp/lstm010mx.dat') #5 利用模型进行预测 predict print('\n#5 模型预测 predict') tn0 = arrow.now() y_pred = mx.predict(x_test) tn = zt.timNSec('', tn0, True) df_test['y_pred'] = zdat.ds4x(y_pred, df_test.index, True) df_test.to_csv('tmp/df_lstm010mx.csv', index=False) #6 print('\n#6 acc准确度分析') print('\nky0=10') df = df_test dacc, dfx, a10 = ztq.ai_acc_xed2ext(df.y, df.y_pred, ky0=10, fgDebug=True)
print(type(X)) #5 print('\n#5,构建线性回归神经网络模型') input_ = tflearn.input_data(shape=[None]) linear = tflearn.single_unit(input_) regression = tflearn.regression(linear, optimizer='sgd', loss='mean_square', metric='R2', learning_rate=0.01) m = tflearn.DNN(regression, tensorboard_dir=rlog) #6 print('\n#6,开始训练模型') m.fit(X, Y, n_epoch=100, show_metric=True, snapshot_epoch=False) #7 print('\n#7,根据模型,进行预测') X2 = df2['close'].values Y2 = m.predict(X2) # ds2y = zdat.ds4x(Y2, df2.index) df2['open2'] = ds2y # print(df2.tail()) df2.to_csv('tmp/df2.csv') #9 print('\n#9,ok')
# #6 利用模型进行预测 predict print('\n#6 模型预测 predict') y_pred = model.predict(x_test) print(y_pred) print('type(y_pred):', type(y_pred)) #7 整理预测数据 print('\n#7 整理预测数据 ') print('\n acc.xed') y2x = y_pred.flatten()[:] print('\n y2x') print(y2x) print('type(y2x):', type(y2x)) ds2y = zdat.ds4x(y2x, df_test.index) df_test['y_pred'] = ds2y print('\ndf_test') print(df_test.tail(9)) print('\n acc.xed') dacc, df2, a10 = ztq.ai_acc_xed2ext(df_test.y, df_test.y_pred, ky0=5, fgDebug=True) # # #8 draw print('\n#8 绘制图形') v1 = [df_test.x, df_test.y, 300, 'blue', 0.2] v2 = [df_test.x, df_test.y_pred, 50, 'red', 0.6]
net = tflearn.fully_connected(net, 3, activation='softmax') net = tflearn.regression(net) # m = tflearn.DNN(net, tensorboard_dir=rlog) # #6 print('\n#6,开始训练模型') m.fit(X, y1, n_epoch=100, show_metric=True) #7 print('\n#7,根据模型,进行预测') X2 = df2[zsys.ohlcLst].values Y2 = m.predict(X2) # y2v = map(np.argmax, Y2) ds2y = zdat.ds4x(y2v, df2.index) df2['ktype2'] = ds2y # print(df2.tail()) df2.to_csv('tmp/df2.csv') # #8 print('\n#8,计算预测结果') df5 = pd.DataFrame() df5['y_test'] = df2['ktype'] df5['y_pred'] = df2['ktype2'] acc, df5x = ztq.ai_acc_xed2x(df5['y_test'], df5['y_pred'], ky0=0.5) # print('\nacc,', acc) print(df5.tail()) df5.to_csv('tmp/df5.csv')