如何评估/提高神经网络在不平衡数据集上的预测准确性?

我使用gridsearchcv来确定mlpclassifier中哪些超参数可以提高我的神经网络的准确性。我发现层数和节点数确实会产生影响,但我正在尝试找出其他哪些配置可以影响准确性(实际上是F1分数)。但根据我的经验,像“激活函数”、“学习率”、“求解器”这样的参数似乎并没有真正改变什么。我需要研究哪些其他超参数可以影响神经网络预测的准确性。

有人对除了层数/节点数之外的其他参数有哪些建议/想法吗,这些参数可以影响我的神经网络预测的准确性?


回答:

这完全取决于你的数据集。神经网络并不是可以学习一切的魔法工具,而且与传统的机器学习模型相比,它们需要更多的数据。对于MLP来说,通过添加大量层使模型变得极其复杂从来都不是一个好主意,因为这会使模型变得更加复杂、运行速度变慢,并且可能导致过拟合。学习率是一个重要因素,因为它用于寻找模型的最佳解决方案。模型会犯错并从中学习,而学习的速度由学习率控制。如果学习率太小,你的模型将需要很长时间才能达到最佳状态,但如果学习率过高,模型可能会跳过最佳状态。激活函数的选择再次取决于用例和数据,但对于较简单的数据库,激活函数不会产生巨大的差异。

在传统的深度学习模型中,神经网络由多个层组成,这些层不一定都是密集的。在MLP中,所有层都是密集的,即前馈型。要改进你的模型,你可以尝试结合密集层和其他类型的层,如CNN、RNN、LSTM、GRU等。使用哪种层完全取决于你的数据集。如果你使用的是非常简单的数据库用于学校项目,那么可以尝试传统的机器学习方法,如随机森林,因为你可能会得到更好的结果。

如果你想坚持使用神经网络,可以阅读关于其他类型的层、丢弃法、正则化、池化等内容。

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注