【发布时间】:2017-12-14 11:58:19
【问题描述】:
我有一个二维矩阵,其中行代表不同的价格水平,列代表最后 N 个柱。 例如,二维矩阵如下所示:
Price Bar0 Bar1 Bar2 Bar3 Bar4 Bar5 ...
0 0 0 1 1 0 0
1 1 0 1 1 0 1
2 1 1 1 1 1 1
3 1 1 0 1 1 0
4 0 0 0 0 1 0
...
这个矩阵将表示,价格数据:
High Low
Bar0 3 1
Bar1 3 2
Bar2 2 0
Bar3 3 0
Bar4 4 2
Bar5 2 1
我想在传递给 LSTM 进行监督学习之前使用卷积 NN 进行特征提取。应该有其他指标,比如移动平均线,也应该传递给 LSTM 进行学习。
# LSTM and CNN for sequence classification in the IMDB dataset
import numpy
from keras.datasets import imdb
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers.convolutional import Conv1D
from keras.layers.convolutional import MaxPooling1D
from keras.layers.embeddings import Embedding
from keras.preprocessing import sequence
# fix random seed for reproducibility
numpy.random.seed(7)
# load the dataset but only keep the top n words, zero the rest
top_words = 5000
(X_train, y_train), (X_test, y_test) = imdb.load_data(num_words=top_words)
# truncate and pad input sequences
max_review_length = 500
X_train = sequence.pad_sequences(X_train, maxlen=max_review_length)
X_test = sequence.pad_sequences(X_test, maxlen=max_review_length)
# create the model
embedding_vecor_length = 32
model = Sequential()
model.add(Embedding(top_words, embedding_vecor_length, input_length=max_review_length))
model.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(LSTM(100))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
我已经阅读了上述序列分类代码的某处,我正在尝试适应时间序列。请帮忙。
【问题讨论】:
标签: python neural-network time-series lstm