#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. Удачи!