Как я могу повысить точность этой нейронной сети keras?

#tensorflow #machine-learning #keras #deep-learning #python-3.6

#tensorflow #машинное обучение #keras #глубокое обучение #python-3.6

Вопрос:

Я работаю с набором данных о заболеваниях сердца из репозитория машинного обучения и хочу повысить точность моего NN на 0,8533.

Я пробовал много вещей, и я получил наилучшие результаты с этими настройками

 classifier = Sequential()
classifier.add(Dense(units = 16, activation = 'relu', 
                        kernel_initializer = 'normal', input_dim = 13))
classifier.add(Dropout(0.2))
classifier.add(Dense(units = 8, activation = 'relu',
                        kernel_initializer = 'normal'))
classifier.add(Dropout(0.2))
classifier.add(Dense(units = 1, activation = 'sigmoid'))
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy',
                      metrics = ['accuracy'])

classifier.fit(x = attributes, y = classes, batch_size = 1, epochs = 1000,
                  validation_split = 0.25)
  

Я изменил количество узлов на 10 и 5 соответственно, изменил оптимизатор на rmsprop и sgd, изменил kernel_initializer на ‘normal’ и ‘random_uniform’. Несмотря на это, точность не улучшилась.

Какие советы вы, ребята, могли бы мне дать, чтобы повысить точность?

Ответ №1:

Если у вас нет переобучения, попробуйте уменьшить частоту отсева. Вы изучили набор данных? Возможно, существуют ненужные функции, и вы можете уменьшить размерность, например, с помощью PCA. Попробуйте использовать K-Fold с вашим набором данных, чтобы получить более реалистичную точность. Вы пробовали другие классификаторы? Нейронные сети — это очень круто, но иногда SVM, LR, randomForest, XGBoost работают довольно прилично, и их легче настраивать, если вы используете сетку со sklearn. Удачи!