- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 150 行、45 个特征和 40 个输出的数据集。我可以很好地过度拟合数据,但我无法为交叉验证集获得可接受的结果。
通过 25 个隐藏层和相当大量的迭代,我能够在训练集上获得约 94% 的准确率;让我脸上露出微笑。但交叉验证结果却低于15%。
因此,为了减轻过度拟合,我开始使用正则化参数(lambda)以及隐藏层的数量。我能得到的最佳结果 (CV) 是训练集上的 24%,以及 lambda=1、70 个隐藏层和 14000 次迭代的训练集上的 34%。增加 iter 的数量也会让情况变得更糟;我不明白为什么我不能通过增加 lambda 和 iters 来改善 CV 结果?
这是我尝试过的 lambda-hiddenLayer-iter 组合:
https://docs.google.com/spreadsheets/d/11ObRTg05lZENpjUj4Ei3CbHOh5mVzF7h9PKHq6Yn6T4/edit?usp=sharing
有什么建议的方法来尝试更智能的调节参数-隐藏层-迭代器组合吗?或者其他改进我的神经网络的方法?我使用 Andrew Ng 的 ML 类中的 matlab 代码(使用反向传播算法。)
最佳答案
仅仅从 150 个具有 45 个特征的训练示例中学习任何东西都是非常困难的(如果我没理解你的问题,有 40 个可能的输出类)。如果您想学习合理的分类器,您需要更多带标签的训练示例 - 如果您确实有 40 个可能的类,则可能需要数万或数十万个示例。即使对于二元分类或回归,您也可能需要数千个具有 45 个有意义的特征的示例。
关于machine-learning - 如何提高神经网络输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29705463/
我是一名优秀的程序员,十分优秀!