我创建了一个用于检测垃圾邮件的神经网络。它涉及以下步骤;
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 封邮件,如果再次给出不好的结果。我降低了学习率,但没有帮助。怎么了?