我已经创建了一个神经网络来检测垃圾邮件。它包括以下步骤:
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封邮件的批量大小,因为它在形成矩阵时容易出现内存不足错误。我使用的是标准的安然火腿和垃圾邮件数据集。我曾经通过反向传播-1输入-1隐藏-1输出层训练神经网络,第一层有20个神经元,隐层有6个神经元。
因此,我开始在我的gmail中训练我的原始垃圾邮件,在切换到安然数据集之前,结果非常糟糕。经过大量训练,取得了令人满意的结果。
当我测试时,14封邮件中有6封被检测到是垃圾邮件。
我使用了替代训练,比如垃圾邮件的批次1和垃圾邮件的批次2,等等,这样网络就会被训练为垃圾邮件的输出为1,而垃圾邮件的输出为0。
但现在经过了太多的训练,我猜大概有400-500封邮件,如果再次给出糟糕的结果的话。我降低了学习速度,但没有帮助。出什么问题了?
发布于 2012-11-21 04:23:09
为了把我的评论总结成一个答案...如果你的net正在产生你期望的结果,然后经过额外的训练,输出的准确性就不那么准确了,那么它很有可能是overtrained。
如果您的数据集很小或变化不够大,则特别容易发生这种情况。寻找最优的纪元数主要是反复试验。
https://stackoverflow.com/questions/13480513
复制相似问题