为什么DNN的acc小于1%

时间:2018-07-05 06:58:18

标签: python machine-learning neural-network keras deep-learning

我是深度学习的新手。我有一个尺寸为34的X,这是一些库存技术指标数据。 Y是标签,它是binary(1,-1)表示股票是上升还是下降趋势。这是我的代码。

import pandas as pd
import numpy as np

data = pd.read_csv('data/data_week.csv')
data.dropna(inplace=True)
x = data.loc[:, 'bbands_upperband':'turn_std_5']
y = data['label']

from keras.models import Sequential
from keras.layers import Dense, Activation

model = Sequential()
model.add(Dense(512, activation='relu', input_dim=34))
model.add(Dense(200, activation='relu'))
model.add(Dense(200, activation='relu'))
model.add(Dense(200, activation='relu'))
model.add(Dense(128, activation='relu'))
model.add(Dense(1, activation='relu'))
model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy'])

model.fit(x, y, epochs=2, batch_size=200)



 231200/1041021 [=====>........................] - ETA: 59s - loss: 0.7098 - acc: 0.0086
 232000/1041021 [=====>........................] - ETA: 59s - loss: 0.7087 - acc: 0.0086

但是,准确度小于1%。我认为这一定有问题。 如果您知道,请告诉我,非常感谢!

1 个答案:

答案 0 :(得分:4)

对于二进制分类模型,应在最后一个致密层中使用S型激活函数

model.add(Dense(1, activation='sigmoid'))

另外,您的课程必须是(0,1)而不是(-1,1)