应用LSTM以及SVM预测股票涨跌、下一个时间段的股票收盘值

在这里插入图片描述
原题目如上,本文只是针对题目简单应用了LSTM、SVM,未做深入探究。
LSTM的Python代码如下:

# -*- coding:utf-8 -*-
import os
import time
import warnings
import numpy as np
import matplotlib.pyplot as plt
from numpy import newaxis
from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
from keras.models import Sequential
import pandas as pd
%matplotlib inline

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
warnings.filterwarnings("ignore") 
#处理数据使之符合LSTM的要求+划分train和test
#interval 时间间隔(每隔1分钟取一次数据,或是隔5分钟取一次数据)
#start_time 所用数据集的起始时间
def load_data(seq_len, normalise_window, interval ,start_time , end_time):
    f = open(r'D:\chenxinyi\信息系统项目实践\EURUSD1.csv')
    # 将日期作为index,顺序排列,出现KeyError!!!!解决:在read_csv中加index_col实现同样效果
    df = pd.read_csv(f, encoding='gbk', index_col=0)
    # 按给定时间间隔提取数据
    select_min = np.linspace(0, len(df) - 1, int(len(df) / interval))
    df = df.iloc[select_min, :]
    data = df.loc[start_time:end_time]
    print(data.head())
    # 将DataFrame 转化成array
    data = data.values
    sequence_length = seq_len + 1
    result = []
    for index in range(len(data) - sequence_length):#为了最后剩一个sequence长度的数据
        result.append(data[index: index + sequence_length,3])
    #数据归一化处理
#     print(result.head())
    if normalise_window:
        result = normalise_windows(result)

    result = np.array(result)
    row = round(0.8 * result.shape[0])
    train = result[:int(row), :]
    np.random.shuffle(train)
    x_train = train[:, :-1]#取出train中的每一行,但是对于列,最后的一列不取
    y_train = train[:, -1]  #此处指的是行列的划分取值(行,列)
    x_test = result[int(row):, :-1]
    y_test = result[i
  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值