SVM概率估计

3
我正在使用SVM解决二分类问题。在训练数据中,类别不平衡。我现在需要获得后验概率输出,而不仅仅是二进制分数。我尝试使用Platt缩放通过Weka的SMO和LibSVM实现。对于这两种实现,我得到的结果在少数类f1度量方面比仅生成二进制结果时更差。
您知道一种将SVM二元结果转换为保持以下规则的概率的方法吗: "当且仅当决策值> = 0时,prob> = 0.5"。
这意味着当使用二进制分类或概率时,每个样本获取的标签都是相同的。
1个回答

0
SVM可以设置为输出类成员概率。您应该查看您的工具包文档,了解如何启用此功能。
例如sckit-learn 当构造函数选项probability设置为True时,启用类成员概率估计(来自方法predict_proba和predict_log_proba)。

我在Weka的SMO和LibSVM中都使用了这个设置。在那里,以及在sckit-learn中,实现是Platt缩放。这种解决方案的问题是与二进制结果情况相比会产生不同的结果。 - Yonanam
@Yonanam: 我知道 libSVM 的行为。但这是问题吗?使用概率分类器的表现明显更差吗? - stefan
@stefan:是的,少数类别的f1度量性能较差。我认为这是因为数据不平衡,使用逻辑函数拟合会有问题。 - Yonanam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接