我创建了一个用于检测垃圾邮件的神经网络。 它涉及以下步骤;
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-Spam和0-Not spam进行培训。
编辑: 我决定通过批量调整7个邮件来训练它,因为它在形成矩阵时容易出现内存不足错误。我使用了火腿和垃圾邮件的标准安然数据集。 我曾经通过反向传播训练神经网络-1输入 - 1隐藏 - 1输出层,第一层有20个神经元,6个隐藏层神经元。
所以我开始在我的Gmail中使用原始垃圾邮件进行培训,在将其转换为enron数据集之前给出非常糟糕的结果。经过大量培训后获得了令人满意的成果。
当我测试时,14个邮件中有6个被检测到垃圾邮件。我使用了替代培训,例如垃圾邮件的第1批和火腿邮件的批处理2等,以便网络训练为1输出垃圾邮件和0火腿邮件。
但是现在经过太多的训练后我估计差不多有400-500封邮件,如果再给出不好的结果呢。我降低了学习率但没有帮助。 出了什么问题?
答案 0 :(得分:0)
将我的评论总结为一个答案......如果你的网络正在产生你期望的结果,然后经过额外的训练后输出不太准确,那么它很有可能是overtrained。
如果您的数据集很小或变化不大,则特别容易发生这种情况。找到最佳的时期数主要是反复试验。