我使用SVM进行分类。我还应用TF,TFIDF和present-absent作为功能。但我得到了不同的结果。现在我想知道这是怎么发生的? 我该如何检查这个结果的原因? 我应该提到这个差异不是太高。它大概是2%或3%。
答案 0 :(得分:1)
简而言之 - 因为每个机器学习方法依赖 表示。特别是,对于任何合理的(能够学习线性可分数据)分类器,确实存在数据表示,其导致该分类器具有50%的准确度(随机分类器,假设类是平衡的)并且存在结果的数据表示在分类器中具有100%的准确度(假设贝叶斯风险为零)。考虑“特征集”{f(x)},其中f(x)= 0。换句话说,我们将每个数据点表示为单个数字0,忽略其真实位置和标签。因此,任何分类器都会失败并将它们全部归类为一个类的成员,因此获得50%的准确度(假设每个类中的样本数量相等)。现在考虑{g(x)}其中g(x)= label(x)。换句话说,我们使用一些假设的oracle,它将一个点编码为其标签。一般来说,我们不能构造这样的g(这就是ML的全部内容),但我们正在谈论存在,而这肯定存在(假设零贝叶斯风险)。所以现在我们的分类器必须区分点{-1}和点{1}(所有正样本都被映射到+1而所有负数都被映射到-1),这是微不足道的,它将以100%的准确度进行。
这些是“边界”案件,但它只是为了画出一种直觉。 一切取决于代表性。一个人可能比其他人更好(在某些方面!)。没有严格的规定。有时为良好的表示添加新功能可能会破坏其价值(由于例如维数的诅咒),有时甚至随机功能也会表现出色。有一整个(非常活跃的这些年)学习领域称为代表性学习我建议你看一下。