0

我创建了一个用于检测垃圾邮件的神经网络。它涉及以下步骤;

1.Formation of tf-idf matrix of terms and mails.
2.Reduction of matrix using PCA.
3.Feeding the 20 most important terms according to eigen values to neural network as features.

我正在针对 1-垃圾邮件和 0-非垃圾邮件对其进行训练。

编辑:我决定通过批量处理 7 封邮件来训练它,因为它在形成矩阵时很容易出现内存不足错误。我使用了 ham 和 spam 的标准 enron 数据集。我曾经通过反向传播训练神经网络 -1 输入 - 1 隐藏 - 1 输出层,第一层有 20 个神经元和 6 个隐藏层神经元。

因此,我开始使用 gmail 中的原始垃圾邮件进行培训,结果非常糟糕,然后才将其切换到 enron 数据集。经过相当多的训练后获得了令人满意的输出。

当我测试时,14 封邮件中有 6 封被检测为垃圾邮件。

我使用了替代训练,例如第 1 批垃圾邮件和第 2 批垃圾邮件等,这样网络就被训练为垃圾邮件的 1 输出和 ham 的 0 输出。

但是现在经过太多的培训,我猜大概有 400-500 封邮件,如果再次给出不好的结果。我降低了学习率,但没有帮助。怎么了?

4

1 回答 1

0

将我的评论总结为答案...如果您确实产生了预期的结果,然后经过额外的培训,输出的准确性降低了,那么很有可能它被过度训练了。

如果您的数据集很小或变化不够,则尤其容易发生这种情况。找到最佳时期数主要是反复试验。

于 2012-11-20T20:23:09.017 回答