稀疏的训练集会对 SVM 产生不利影响吗?

机器算法验证 分类 支持向量机
2022-03-23 07:46:52

我正在尝试使用 SVM 将消息分类为不同的类别。我已经从训练集中编制了一份理想的单词/符号列表。

对于表示消息的每个向量,1如果存在该单词,我将相应的行设置为:

“语料库”是:[mary, little, lamb, star, twinkle]

第一条消息:“玛丽有一只小羊羔”-> [1 1 1 0 0]

第二条消息:“闪烁的小星星”-> [0 1 0 1 1]

我认为这是 SVM 相当常见的设置,但我的问题是,在集合中有数千个单词时,如果每条消息实际显示的只有 1-2 个单词怎么办?我的训练向量集的线性相关性是否会对算法的收敛能力产生不利影响?

1个回答

稀疏性和线性相关性是两个不同的东西。线性相关意味着某些特征向量是其他特征向量的简单倍数(或同样适用于示例)。在您描述的设置中,我认为线性相关性不太可能(这意味着两个术语在所有文档中具有相同的频率(或其倍数))。简单地具有稀疏特征不会对 SVM 造成任何问题。看到这一点的一种方法是您可以对坐标轴进行随机旋转,这将使问题保持​​不变并给出相同的解决方案,但会使数据完全不稀疏(这部分是随机投影的工作原理)。

此外,您似乎在谈论primal中的 SVM 。请注意,如果您使用内核 SVM,仅仅因为您拥有稀疏数据集并不意味着内核矩阵将是稀疏的。然而,它可能是低等级的。在这种情况下,您实际上可以利用这一事实进行更有效的训练(例如,参见使用低秩内核表示的高效 svm 训练)。