如何提高这个keras神经网络的准确性?

时间:2019-03-05 01:57:27

标签: tensorflow machine-learning keras deep-learning python-3.6

我正在使用机器学习存储库中的Heart Disease数据集,并且希望提高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 个答案:

答案 0 :(得分:0)

如果您没有过度拟合,请尝试降低辍学率。您研究过数据集了吗?也许有不必要的功能,例如,您可以使用PCA降低尺寸。尝试对数据集使用K-Fold以获得更真实的准确性。您是否尝试过其他分类器?神经网络非常酷,但有时SVM,LR,RandomForest,XGBoost的工作相当不错,如果将sklearn与Grid一起使用,则调整起来会更容易。祝你好运!