学习率调整无效果
数据归一化无效果
特征字段添加减去 效果忽略
模型增加RNN层 无效果
添加模型天数 效果不明显

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVR,SVR
import pandas as pd
import tensorflow as tf
from tensorflow.keras import layers
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.layers import Dropout, Dense, SimpleRNN
import os# df2=pd.read_csv('F:\\股票预测code\\hs300_stock_predict-master\\000895.csv',encoding='UTF-8')
df2=pd.read_csv('F:\\股票预测code\\hs300_stock_predict-master\\000895_result_data_pre.csv',encoding='UTF-8')
df_x=df2[['open', 'high', 'close', 'low', 'p_change']].copy()
df_y=df2[['实际变化率']]
print(df_x.head())
print(df_x.shape)len=60result_x=(pd.DataFrame(df_x[0:len])).values.flatten()
result_y=[]
for i in range(1,df_x.shape[0]-len-1):sub=np.mat((pd.DataFrame(df_x[i:i+len])).values.flatten())result_x=np.vstack((result_x,sub))# for i in range(0, df_y.shape[0] - len):
#  rate=(df_y['close'][i+len]-df_y['close'][i+len-1])/df1['close'][i+len-1]
#  result_y.append(rate)x=result_x.Ay=np.array(df_y[len:-1])
print(type(x))
print(type(y))
print(y)print(x.shape)
print(y.shape)X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=6)#利用train_test_split进行将训练集和测试集进行分开,test_size占20%# 整体归一化
sc = MinMaxScaler(feature_range=(0, 1))  # 定义归一化:归一化到(0,1)之间
training_set_scaled = sc.fit_transform(X_train)  # 求得训练集的最大值,最小值这些训练集固有的属性,并在训练集上进行归一化
test_set = sc.transform(X_test)  # 利用训练集的属性对测试集进行归一化# 归一化
sc_y = MinMaxScaler(feature_range=(0, 1))  # 定义归一化:归一化到(0,1)之间
training_set_scaled_y = sc_y.fit_transform(y_train.reshape(-1,1))  # 求得训练集的最大值,最小值这些训练集固有的属性,并在训练集上进行归一化
test_set_y = sc_y.transform(y_test.reshape(-1,1))  # 利用训练集的属性对测试集进行归一化
print(training_set_scaled_y)# model=tf.keras.Sequential()
# model.add(layers.Dense(42,input_shape=(df1.shape[1]*len,),activation='relu'))
# model.add(layers.Dense(42,activation='relu'))
# model.add(layers.Dropout(0.5))
# model.add(layers.Dense(21,activation='relu'))
# model.add(layers.Dense(21,activation='relu'))
# model.add(layers.Dropout(0.5))
# model.add(layers.Dense(10,activation='relu'))
# model.add(layers.Dense(10,activation='relu'))
# model.add(layers.Dropout(0.5))
# model.add(layers.Dense(1,activation='sigmoid'))training_set_scaled=np.reshape(training_set_scaled, (training_set_scaled.shape[0], training_set_scaled.shape[1], 1))
test_set=np.reshape(test_set, (test_set.shape[0], test_set.shape[1], 1))
# training_set_scaled=np.reshape(training_set_scaled, (training_set_scaled.shape[0], df1.shape[1]*len, 1))
# test_set=np.reshape(test_set, (test_set.shape[0], df1.shape[1]*len, 1))
print(training_set_scaled)
print(test_set)model = tf.keras.Sequential([SimpleRNN(100, return_sequences=True),Dropout(0.2),SimpleRNN(200, return_sequences=True),Dropout(0.2),SimpleRNN(100),Dropout(0.2),Dense(1,activation='relu')
])model.compile(optimizer=tf.keras.optimizers.Adam(0.0001),loss='mean_squared_error')  # 损失函数用均方误差checkpoint_save_path = "./checkpoint/rnn_stock.ckpt"if os.path.exists(checkpoint_save_path + '.index'):print('-------------load the model-----------------')model.load_weights(checkpoint_save_path)cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_save_path,save_weights_only=True,save_best_only=True,monitor='val_loss')history = model.fit(training_set_scaled, training_set_scaled_y, batch_size=32, epochs=50, validation_data=(test_set, test_set_y), validation_freq=1,callbacks=[cp_callback])model.summary()file = open('./weights.txt', 'w')  # 参数提取
for v in model.trainable_variables:file.write(str(v.name) + '\n')file.write(str(v.shape) + '\n')file.write(str(v.numpy()) + '\n')
file.close()loss = history.history['loss']
val_loss = history.history['val_loss']plt.plot(loss, label='Training Loss')
plt.plot(val_loss, label='Validation Loss')
plt.title('Training and Validation Loss')
plt.legend()
plt.show()# model.summary()
# model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
#               loss='mean_squared_error')# model.fit(training_set_scaled,training_set_scaled_y, batch_size=10,epochs=20,validation_data=(test_set,test_set_y))predict_result=model.predict(np.reshape(x, (x.shape[0], x.shape[1], 1)))
df_result=df2.iloc[len:-1,:].reset_index(drop=True)
# print(df_result.shape)
# print(y)
print(sc_y.inverse_transform(predict_result))
df_result['实际变化率']=pd.DataFrame(y)
df_result['预测变化率']=pd.DataFrame(sc_y.inverse_transform(predict_result))
df_result.to_csv("F:\\股票预测code\\hs300_stock_predict-master\\000895_result.csv")plt.plot(y, color='red', label='MaoTai Stock Price')
plt.plot(sc_y.inverse_transform(predict_result), color='blue', label='Predicted MaoTai Stock Price')
# plt.plot(training_set_scaled_y, color='black', label='MaoTai Stock Price SC')
# plt.plot(predict_result, color='y', label='MaoTai Stock PriceSC')plt.title('MaoTai Stock Price Prediction')
plt.xlabel('Time')
plt.ylabel('MaoTai Stock Price')
plt.legend()
plt.show()

股票预测 预测结果一条直线 无特征 烦恼一周了相关推荐

  1. svr预测出来是一条直线_不看错过好几亿!5分钟学会用Python预测美股价格

    前面的文章,从美股数据获取到相关性分析做了介绍和代码演示,接下来我们会用美股的历史数据对未来的价格做一个预测. 预测股票价格 预测股票价格 特征工程 将使用这三种机器学习模型来预测股票: 简单线性分析 ...

  2. svr预测出来是一条直线_如何预测股价目标位,涨跌目标预测法之“解消点”帮你寻找...

    在买入股票前,投资者往往会在股价回档到心目中的价位时再买入:在买入后,会在股价上涨到心中的目标价时再卖出.但"买套"和"卖飞"却成为影响投资者心境的主要难题,& ...

  3. 股票量化预测风险准不准?

    股票量化交易一般会经过海量数据魔方测试盒模拟操作等手段进行预测风险,根据系统本身的算法进行仓位和资金配置,实现风险最小化和收益最大化,但往往也会存在一定的潜在风险,那么,股票量化预测风险准不准呢? 小 ...

  4. DL之perceptron:利用perceptron感知机对股票实现预测

    DL之perceptron:利用perceptron感知机对股票实现预测 目录 输出结果 实现代码 输出结果 更新-- 实现代码 import numpy as np import operator ...

  5. 利用TabNet进行股票长线预测

    利用TabNet模型进行股票长线预测 提示:本篇文章只提供一个思路,因本人是金融小白,搭建模型时所参考的股票指标并不完善,所以结果准确性无法保证,各位不要将结果作为投资参考!!! 文章目录 利用Tab ...

  6. 使用 Python 对股票数据分析预测

    使用 Python 对股票数据分析预测 文章目录 使用 Python 对股票数据分析预测 目录索引 模块安装 股票数据获取 雅虎财经 Quandl 模块 Pandas Datareader 模块 数据 ...

  7. 基于Qt实现的股票分析预测软件,实现外排序功能,创建索引,加快数据获取,根据股票的年月和代码进行k线图展示,热力图展示,相关系数计算,最后价格预测和股票价格曲线展示。

    资源下载地址 https://download.csdn.net/download/qq_40335674/87857061 基于Qt实现的股票分析预测软件,实现外排序功能,程序加载数据内存限制不超过 ...

  8. 电力负荷预测数据集(128158条数据,时间间隔15min,含天气状况,最高温度,最低温度,白天晚上风力,风力,风向等天气数据)

    下载地址:电力负荷预测数据集(128158条数据,时间间隔15min,含天气状况,最高温度,最低温度,白天晚上风力,风力,风向等天气数据)

  9. Python --相似K线匹配--实现股票走势预测 Tushare

    Python --相似K线匹配–实现股票走势预测 Tushare 前言 同花顺和东方财富都提供了一个免费的功能可以查找相似走势的K线,提供参考.差不多,东方财富可以选择分析的周期,同花顺是固定120日 ...

最新文章

  1. 1.2 学习笔记之数据类型
  2. iOS_“图片浏览选择”功能的编写思路
  3. CentOS下TPC-W安装
  4. Go 命令行参数,JSON 序列化与反序列化
  5. IBase component cannot be created and deleted in the same second
  6. 前端学习(811):api和webapi
  7. 常见Serialize技术探秘(ObjectXXStream、XML、JSON、JDBC byte编码、Protobuf)
  8. SVN插件版本过低1.6的已经不兼容现在新版的eclipse 了用 1.8X的吧
  9. 一位网络工程师的终告
  10. 王栋: 要做好推荐,只有技术是不够的
  11. 如何在JavaScript中声明名称空间?
  12. 基于lis3dh的简易倾角仪c源码_cm-23D柯尼卡美能达分光测色计色差仪CM-2300d
  13. Java设计模式-Builder生成器模式
  14. 四大行的CIO们如何看待大数据
  15. DAO 的具体内涵与概念
  16. ubuntu16.04,exFAT格式U盘无法打开解决方式
  17. 怎么使用pyd 文件
  18. 如何做一个园区的导航地图?园区楼宇地图导航如何实现?
  19. 手游平台开发需要哪些人员构成?
  20. 抽象类 [Java]

热门文章

  1. 数据结构基础知识点总结
  2. java离线编译_离线代码编译器用吐了,那这五款在线编译器你可以来试试了。...
  3. android 添加点击声音,Android如何为按键添加声音
  4. C++ string类
  5. ESB集成系统,轻量级的企业总线平台
  6. 鸿蒙os执行效率最高的是多少级,华为鸿蒙OS升级半个多月后,好评度虽高,但“差评”也很扎心!...
  7. baseline与benchmark
  8. 功能测试的用例测试方法
  9. 页数数字出现次数统计
  10. umi 中使用 px2rem 插件