- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 2979 个
- 通用积分
- 6.6000
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 4270 点
- 帖子
- 128
- 精华
- 0
- 在线时间
- 591 小时
- 注册时间
- 2009-3-17
- 最后登录
- 2024-10-13
已卖:1份资源
讲师
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 2979 个
- 通用积分
- 6.6000
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 4270 点
- 帖子
- 128
- 精华
- 0
- 在线时间
- 591 小时
- 注册时间
- 2009-3-17
- 最后登录
- 2024-10-13
 | 开心 2015-6-4 19:07:51 |
|---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
|
50论坛币
|
我按照下面例题读取数据可是到了“2. Set last day Adjusted Close as y”这步,数据总是缺少最后一行。不知道为什么求高人解答。读取的源数据df可以看到最后一行值都是1.00000,可是转换到y_test之后最后一行就不见了。
代码如下:
- import numpy as np
- import matplotlib.pyplot as plt
- import matplotlib.pyplot as plt2
- import pandas as pd
- from pandas import datetime
- import math, time
- import itertools
- from sklearn import preprocessing
- import datetime
- from sklearn.metrics import mean_squared_error
- from math import sqrt
- from keras.models import Sequential
- from keras.layers.core import Dense, Dropout, Activation
- from keras.layers.recurrent import LSTM
- from keras.models import load_model
- import keras
- import pandas_datareader.data as web
- import h5py
复制代码
- def get_stock_data(stock_name, normalize=True):
- start = datetime.datetime(1971, 1, 1)
- end = datetime.date.today()
- df = web.DataReader(stock_name, "yahoo", start, end)
- df.drop(['Volume', 'Close'], 1, inplace=True)
- if normalize:
- min_max_scaler = preprocessing.MinMaxScaler()
- df['Open'] = min_max_scaler.fit_transform(df.Open.values.reshape(-1,1))
- df['High'] = min_max_scaler.fit_transform(df.High.values.reshape(-1,1))
- df['Low'] = min_max_scaler.fit_transform(df.Low.values.reshape(-1,1))
- df['Adj Close'] = min_max_scaler.fit_transform(df['Adj Close'].values.reshape(-1,1))
- return df
- df = get_stock_data(stock_name, normalize=True)
- df
复制代码
2. Set last day Adjusted Close as y
- def load_data(stock, seq_len):
- amount_of_features = len(stock.columns)
- data = stock.as_matrix()
- sequence_length = seq_len + 1 # index starting from 0
- result = []
- for index in range(len(data) - sequence_length): # maxmimum date = lastest date - sequence length
- result.append(data[index: index + sequence_length]) # index : index + 22days
- result = np.array(result)
- row = round(0.9 * result.shape[0]) # 90% split
- train = result[:int(row), :] # 90% date
- X_train = train[:, :-1] # all data until day m
- y_train = train[:, -1][:,-1] # day m + 1 adjusted close price
- X_test = result[int(row):, :-1]
- y_test = result[int(row):, -1][:,-1]
- X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], amount_of_features))
- X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], amount_of_features))
- return [X_train, y_train, X_test, y_test]
- y_test
复制代码
|
|