svm概念查询

时间:2013-03-30 20:22:33

标签: machine-learning svm

我对SVM有一些基本的概念性查询 - 如果任何人可以指导我这将是很好的。我已经学习了一段时间的书籍和讲座,但未能正确地获得这些查询的答案

  1. 假设我有m个特征数据点 - m> 2.我如何知道数据点是否可线性分离?如果我理解正确,线性可分的数据点 - 不需要任何特殊的内核来查找超平面,因为不需要增加维度。

  2. 说,我不确定数据是否可以线性分离。我尝试用线性内核得到一个超平面,一次是松弛,一次是拉格朗日乘数没有松弛。我将看到这两个超平面的训练和测试数据的错误率有什么不同。如果我理解正确,如果数据不是线性可分的,如果我没有使用松弛,那么就没有任何最佳平面。如果是这种情况,svm算法应该在不同的运行中给我不同的超平面。现在,当我介绍松弛时 - 我是否应该总是得到相同的超平面,每次运行?我怎样才能从超平面的拉格朗日乘数中找出数据是否可线性分离。

  3. 现在从2开始说我知道数据在m维度上不是线性可分的。因此,我将尝试增加尺寸,看看它是否可以在更高的维度上分离。我怎么知道我需要去多高?我知道计算不会进入那个空间 - 但有没有办法从2中找出3应该是最好的内核(即我想找到一个线性分离超平面)。

  4. 在Matlab中可视化超平面和数据点的最佳方法是什么,其中特征尺寸可以大到60 - 超平面在> 100维(i,数据点数百,使用高斯核,特征向量变为> 100维)。

  5. 如果有人清除这些疑惑,我将非常感激 此致

1 个答案:

答案 0 :(得分:1)

我将尝试关注你的问题(1),(2)和(3)。在实践中,最重要的问题不是问题是否可以线性分离,而是分类器对看不见的数据的表现如何(即分类的程度如何)。看起来你想要找到一个可以线性分离数据的好内核,你总能做到这一点(考虑在每个训练点放置一个非常窄的高斯RBF),但你真正想要的是对看不见的数据的良好表现。话虽如此:

  • 如果问题不能线性分离且不使用冗余,则优化将失败。它取决于实现和具体的优化算法如何失败,它是否收敛?,它是否找不到下降方向?它会遇到数值上的困难吗?即使您想要确定带有松弛的情况,您仍然可能会遇到数值上的困难,而这将导致您的线性可分性算法不可靠
  • 你需要多高?那是一个基本问题。它被称为数据表示的问题。对于直接的解决方案,人们使用保持数据(人们不关心线性可分性,他们关心保持数据的良好性能)并进行参数搜索(例如RBF内核可以比线性内核更具表现力)在正确的gammas下。所以问题就是为你的数据找到一个好的伽玛。例如,参见本文:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.141.880
  • 我认为拉格朗日乘数的值与线性可分性之间存在微不足道的联系。你可以尝试一个价值为C的高alpha,但我不确定你能说多少。