为什么SVM使用不同的特征得到不同的结果?

why SVM obtain different result using different feature?

我使用 SVM 进行分类。我还应用了 TF、TFIDF 和 present-absent 作为特征。但我得到了不同的结果。现在我想知道这是怎么发生的? 我怎样才能检查这个结果的原因? 我应该指出,这种差异并不太高。大约是 2% 或 3%。

简而言之 - 因为每个机器学习方法依赖于表示。特别是,对于任何合理的(能够学习线性可分数据)classifier 确实存在导致此 classifier 具有 50% 准确度的数据表示(随机 classifier ,假设 classes 是平衡的)并且存在导致 classifier 具有 100% 准确度的数据表示(假设贝叶斯风险为零)。考虑 "feature set" {f(x)},其中 f(x)=0。换句话说,我们将每个数据点表示为单个数字 0,忽略其真实位置和标签。结果,任何 classifier 都会失败,并且 class 将它们全部验证为一个 class 的成员,因此获得 50% 的准确度(再次假设,每个 class).现在考虑 {g(x)},其中 g(x)=label(x)。换句话说,我们使用一些假设的神谕,它将一个点编码为它的标签。一般来说,我们无法构建这样的 g(这就是 ML 的全部内容),但我们正在谈论存在性,而这肯定存在(假设贝叶斯风险为零)。所以现在我们的 classifier 必须区分点 {-1} 和点 {1}(所有正样本映射到 +1,所有负样本映射到 -1)这是微不足道的,它将用 100 % 准确率。

这些是 "border" 个案例,但这只是为了得出一个直觉。 一切 取决于表示。一个可以比另一个更好(在某些方面!)。没有严格的规定。有时向良好表示添加新特征可能会破坏其价值(例如由于维数灾难),有时甚至随机特征也会表现出色。有一个完整的(这些年非常活跃的)研究领域叫做表示学习我建议你看看那个。