Сначала я использую набор данных для распознавания эпилептических припадков (источник: 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) Какую функцию активации я должен использовать?