http://www.sh-dupai.com

  • 当前位置:8号配资网 > 按月配资 >
  • 股票价格lstm预测,rnn股票预测

    欢迎来到8号配资网,下面小编就介绍下股票价格lstm预测,rnn股票预测的相关资讯。

    在本文中,大家将建立一个由简易的长短期记忆层和二元支持向量机构成的循环系统神经元网络。该深度学习实体模型的目地是依据前30天的 close, open, high, low price和volume预测分析个股在第二天增涨或下挫。大家将其精确性与“基准线实体模型”开展较为,“基准线实体模型”一直挑选检测集中化最普遍的值(如果不查询股价方式,则可得到 最大精密度)。

    股票价格lstm预测,rnn股票预测 lstm股票预测对比实验

    假定假如存有股价方式,那麼必须一个比较复杂的神经元网络来学习培训他们,因而好于大家的基准线实体模型。

    从标普指数500指数中任意选择10只个股。 获得特点:以往十年中每个个股的Open, Close, High, Low 和 Volum数据信息(来源于Nasdaq网址)。 针对每一个个股,针对每一个特点,应用特点数据信息建立30天(第一天,......,第30天,第二天,......,第31天等)的数组。 建立一个由一个LSTM层(32个模块)和一个sigmoid神经细胞(实体模型1)构成的神经元网络,另一个由2个LSTM层(32和八个模块)和一个sigmoid神经细胞(实体模型2)构成。 在训炼数据信息上训炼深度学习实体模型。 在数据测试上检测深度学习实体模型。

    股票预测方式lstm预测分析个股准确度一般是多少

    '''Using an LSTM to predict whether a stock's price will go up or down next day (based on data previous 30 days).Input: Open, Close, High, Low, Volume data for a 10 year period for 10 randomly selected stocks.Output: DataFrame with accuracy baseline model, this model, and difference.'''# import librariesimport pandas as pdimport numpy as npimport tensorflow as tffrom sklearn.preprocessing import MinMaxScalerfrom keras.models import Sequentialfrom keras.layers import Dense, LSTMbaseline_acc = {}lstm_acc = {}premium = {}for x in ['AMG', 'BKNG', 'DISCA', 'FCX', 'JNPR', 'KLAC', 'MDT', 'RL', 'TXT', 'USB']: # load data dataset = pd.DataFrame.from_csv('C:\\Users\\rgrau\\Desktop\\lstmData\\sAndP\\' x '.csv') # remove commas from volume vol = dataset['volume'] try: vol = vol.str.replace(',', '') except: vol = vol.replace(',', '') # convert volume into float dataset['volume'] = pd.to_numeric(vol) # turn dataframe into numpy array data = dataset[['close', 'volume', 'open', 'high', 'low']].as_matrix() data = np.flipud(data) # create empty matrix to fill with normalized examples lookback_period = 30 data_matrix = np.empty([(data.shape[0] - lookback_period), data.shape[1], lookback_period]) # initialize normalizer scaler = MinMaxScaler(feature_range=(-1, 1)) # normalize data for i in range(data_matrix.shape[0]): # for each example for j in range(data_matrix.shape[1]): # for each feature scaler.fit(data[i: i lookback_period, j].reshape(lookback_period, 1)) data_matrix[i, j, :] = scaler.transform(data[i: i lookback_period, j].reshape(1, -1)) data_matrix = np.swapaxes(data_matrix, 1, 2) # create y values: 1 if close at day 30 > close at day 29. Else 0. def up_down(yest, tod): if tod >= yest: return 1 else: return 0 perm = np.random.permutation(data_matrix.shape[0]) data_matrix = data_matrix[perm] targets = np.empty([data_matrix.shape[0], 1]) for i in range(data_matrix.shape[0]): targets[i] = up_down(data_matrix[i][-2][0], data_matrix[i][-1][0]) from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(data_matrix[:, :-1, :], targets, stratify=targets, test_size=0.2) ''' layers: 1 LSTM (32 units) 1 Dense (1 unit) lookback_period = 30 ''' from keras.callbacks import EarlyStopping model = Sequential() model.add(LSTM(32, input_shape=(x_train.shape[1], x_train.shape[2]), stateful=False, return_sequences=True)) model.add(LSTM(8, input_shape=(x_train.shape[1], x_train.shape[2]), stateful=False)) model.add(Dense(1, activation = 'sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics = ['accuracy']) EarlyStopping(monitor='val_acc', min_delta=0.001, patience=20, restore_best_weights=True) model.fit(x_train, y_train, batch_size=20, validation_split = 0.20, epochs=100, shuffle=False) # baseline accuracy (= accuray if you always chose the most frequent y-value in testset) baseline_acc[x] = float(max(sum(y_test)/len(y_test), (1 - sum(y_test)/len(y_test)))) print(x) print('Baseline accuracy: ' x str(baseline_acc[x])) # LSTM accuracy loss_and_metrics = model.evaluate(x_test, y_test) lstm_acc[x] = float(loss_and_metrics[1]) print('LSTM accuracy: ' str(lstm_acc[x])) # LSTM premium premium[x] = lstm_acc[x] - baseline_acc[x] print('LSTM premium: ' str( premium[x]))a = pd.DataFrame.from_dict(baseline_acc, orient='index').rename(columns = {0: 'baseline_acc'})b = pd.DataFrame.from_dict(lstm_acc, orient='index').rename(columns = {0: 'lstm_acc'})c = pd.DataFrame.from_dict(premium, orient='index').rename(columns = {0: 'premium'})result = pd.concat([a, b, c], axis=1)result

    如今,实体模型是如何呢?比预估的要好很多。比如,实体模型2 在10次中超出基准线实体模型9次。因而,针对10只个股中的9只,该实体模型能够更好地预测分析个股是不是会在第二天增涨或下挫,而不仅是一直挑选最普遍的数据信息。

    个股为什么不可以预测分析

    这是不是代表着你能用这类方式挣钱呢? 或许并不是。即便 我们可以肯定毫无疑问地预测分析某只个股明日会涨依然会跌,大家依然不清楚涨是多少。这很重要。假定你猜对了57%的几率,但你猜猜对的情况下只赚人民币100,猜错的情况下损害200美元。


    以上全部内容股票资讯sh-dupai.com提供,如果您还想了解更多的关于股票配资股票股票公司的文章,请点击查看股票配资sh-dupai.com的其它文章

  • 本文地址:8号配资网http://www.sh-dupai.com/five/2284.html
  • 上一篇:为什么股票价格会上涨和下跌,股票为什么会量涨价跌 下一篇:高估了股票价格会怎样,股票价格被高估
  • 说点什么吧
    • 全部评论(0
      还没有评论,快来抢沙发吧!