目前,我正在尝试使用kNN分类对垃圾邮件进行分类。数据集以词袋表示法表示,它包含约x。10000个观测值,约900个功能。Matlab是我用来处理数据的工具。
在过去的几天里,我尝试了几种机器学习方法:支持向量机、贝叶斯和kNN。在我看来,当涉及到最小化假阳性率时,kNN的性能优于SVM和贝叶斯。通过10倍交叉验证,我使用k=9和曼哈顿距离得到了0.0025的假阳性率。海明距离在相同的区域中执行。
为了进一步提高我的FPR,我尝试使用PCA对数据进行预处理,但这将使我的FPR值为0.08是不可接受的。
您是否知道如何调整数据集以获得更好的FPR?
PS:是的,为了通过机器学习课程,这是我必须完成的任务。
发布于 2014-04-06 09:36:42
可以尝试的方法:重复计算训练数据中的非垃圾邮件样本。比如说,1000个样本中有500个是非垃圾邮件。在重复计算非垃圾邮件的数量后,您将拥有1500个样本的训练集。这可能会给假阳性测试样本带来更多的阳性最近邻居。请注意,整体性能可能会受到影响。
https://stackoverflow.com/questions/22576291
复制相似问题