Я построил ANN в keras, который имеет 1 входной уровень (3 входа), один выходной уровень (1 выход) и два скрытых слоя с 12 и 3 узлами соответственно.Оптимизация точности нейронной сети
Путь я построить и обучить свою сеть является:
from keras.models import Sequential
from keras.layers import Dense
from sklearn.cross_validation import train_test_split
import numpy
# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
dataset = numpy.loadtxt("sorted output.csv", delimiter=",")
# split into input (X) and output (Y) variables
X = dataset[:,0:3]
Y = dataset[:,3]
# split into 67% for train and 33% for test
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=seed)
# create model
model = Sequential()
model.add(Dense(12, input_dim=3, init='uniform', activation='relu'))
model.add(Dense(3, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Fit the model
model.fit(X_train, y_train, validation_data=(X_test,y_test), nb_epoch=150, batch_size=10)
Сортировка выходного файла CSV выглядит следующим образом:
так через 150 эпох я получаю: потеря: 0,6932 - acc: 0,5000 - val_loss: 0,6970 - val_acc: 0,1429
Мой вопрос: как я могу изменить свой NN для достижения более высокой точности?
Я получаю сообщение об ошибке: Нет модуля с именем preprocessig – Adriano10
@ Adriano10: Ответ отсутствует 'n', попробуйте' из sklearn.preprocessing import StandardScaler' –
@NeilSlater: спасибо, исправлено опечатку – Tobias