我正在构建一个工具来计算一个文本评论的概率是假的(垃圾邮件)还是真实的。
我有一个带注释的评论数据集,标记为垃圾邮件或非垃圾邮件。我已经使用svm构建了一个分类器,但这只能将输入文档分类为垃圾文档或非垃圾文档。然而,我想要一个工具,它会给我一个介于0和1之间的数字,代表该文档是垃圾邮件的概率。有人能给我指个方向吗?
发布于 2012-11-26 18:43:13
如果你想要一个连续值的分数(而不是一个显式的概率),你可以只使用SVM到超平面的距离。这是一个标准的置信度度量,您可以看到该点在多大程度上“融入”了类。
如果你想实际使用分类作为更广泛的概率模型的一部分,其中你需要一些真正的概率解释,你可以使用一种将SVM分数转换为概率的方法,但这些都是某种程度上的改进,没有很好的理论基础。相反,我建议你看看logistic regression classifier,有时被称为最大熵,以获得一个强大的概率替代方案。这具有像SVM这样的判别模型的好处,但具有自然和固有的概率基础。
发布于 2012-11-26 13:48:38
与其编写自己的代码,为什么不插入akismet呢?垃圾邮件检测是贝叶斯方法,提供的数据越多,检测效果越好。
发布于 2012-11-26 18:20:17
你可以用支持向量机得到概率。看看libsvm (-b参数)。
https://stackoverflow.com/questions/13559253
复制相似问题