我正在使用机器学习存储库中的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”。即使这样,准确性也没有提高。
你们能给我些什么技巧来提高准确性?
答案 0 :(得分:0)
如果您没有过度拟合,请尝试降低辍学率。您研究过数据集了吗?也许有不必要的功能,例如,您可以使用PCA降低尺寸。尝试对数据集使用K-Fold以获得更真实的准确性。您是否尝试过其他分类器?神经网络非常酷,但有时SVM,LR,RandomForest,XGBoost的工作相当不错,如果将sklearn与Grid一起使用,则调整起来会更容易。祝你好运!