【发布时间】:2019-01-18 22:17:54
【问题描述】:
我一直在尝试创建 RNN。我总共有一个包含 1661 个单独“条目”的数据集,每个条目中有 158 个时间序列坐标。
以下是一篇文章的一小部分:
0.00000000e+00 1.92609687e-04 3.85219375e-04 5.77829062e-04
3.00669864e-04 2.35106660e-05 -7.33379576e-04 -1.49026982e-03
这只是一个包含 158 个时间序列值的数组。
现在,我想分类一个值数组是属于条件 A 还是条件 B。
我查看了很多博客、keras 文档和 youtube 视频,并提出了以下网络:
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers.embeddings import Embedding
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
# Set data and labels
# Somehow find a way to 'unpack' the data
datarnn = np.copy(normalized_data)
datarnn = np.array(rearrange_data(datarnn))
print(len(datarnn))
# Convert labels to binary labels
targetrnn = np.asarray(['1' if 'A' in str(x) else '0' for x in spineMidData_clean[:,0][1:]])
# Split data for training and testing
x_training,x_testing,y_training,y_testing = train_test_split(datarnn,targetrnn,test_size=0.2,random_state=4)
model=Sequential()
# Input layer
model.add(Embedding(1661, 1))
# Hidden layer
model.add(LSTM(3))
# Output layer with binary classification
model.add(Dense(1, activation='sigmoid'))
# Set training settings
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
# Model diagnostics
model.summary()
history = model.fit(x_training,y_training,epochs=20,validation_data=(x_testing,y_testing))
# Predict the test data
results = model.predict(x_testing)
终于看到它起作用了,我很兴奋。但是,我似乎无法提高准确度,保持在 50% 左右。有没有办法让这个网络更准确?例如。我要添加更多层,还是以错误/低效的方式配置现有层?
【问题讨论】:
标签: python time-series coordinates recurrent-neural-network