首先,我使用了癫痫发作识别数据集 (来源:http://archive.ics.uci.edu/ml/datasets/Epileptic+Seizure+Recognition)
嘿,我的模型适合数据集时遇到问题。
以下是我正在使用的代码:
import pandas
from keras.models import Sequential
from keras.layers import Dense
import numpy
def main():
dataset = pandas.read_csv("data.csv")
Y = dataset["y"]
X = dataset.drop("y", axis=1).drop("Unnamed: 0", axis=1)
Y = Y.values
X = X.values
model = Sequential()
model.add(Dense(178, input_dim=178, activation='relu'))
model.add(Dense(500, activation="relu"))
model.add(Dense(1000, activation='relu'))
model.add(Dense(500, activation='relu'))
model.add(Dense(250, activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(20, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"])
model.fit(X, Y, epochs=1000, batch_size=300)
if __name__ == '__main__':
main()
每个输出看起来都与此相同:
Epoch 330/500
11500/11500 [==============================] - 0s - loss: -31.8848 - acc: 0.2000
所以我的训练不正常。我究竟做错了什么?对我来说还有其他问题:
1)我需要添加多少个图层以及多少个单位?有经验法则吗?
2)我必须使用什么激活功能?
答案 0 :(得分:0)
这不是二进制分类数据集。根据数据集页面,
y包含178维输入向量的类别。特别是在{1,2,3,4,5}
中的y
1)我需要添加多少个图层以及多少个单位?是否有经验法则?
这取决于。您必须调整两个数字以获得最佳性能。但是,对于具有大约10k实例的数据集,我猜测8个完全连接的层和1000个单元都太多了。
2)我必须使用什么激活功能?
ReLU通常是堆叠Dense
图层的良好起点。