在尝试在一些 Kaggle 数据上训练 SVM 时,我遇到了线性内核无法给出任何结果的情况。
这对我来说没有意义,因为 RBF 内核工作得很好,我的理解是线性内核是一个严格简单的版本,它不会将数据映射到更高的维度。事实上,我所有的 研究都表明,不仅线性内核是可能的,而且在大多数情况下,收敛速度应该更快(权衡结果可能不那么准确)。
然而,事实证明并非如此。虽然 RBF 内核能够在大约 6 分钟后的交叉验证期间产生结果,但线性内核在大约 6 小时后就坐在那里没有输出。在此之后,我只是强制退出训练并开始测试其他 SVM 参数。
一些事实的细分:
- 大约 60,000 个示例,大约 120 个特征(有时减少到 30 个特征会有所帮助,线性内核会在数小时后产生结果)
- 我正在使用 SKLearn GridSearchCV 进行培训
- 我已经测试了这个使用
SVC(kernel='linear')
以及LinearSVC()
,两者都具有相同的结果 - 这个问题已经提出了跨不同比赛的多个数据集
我目前的假设是训练停止可能是因为数据不是线性可分的。不过,我可能会遗漏其他明显的东西。任何指导表示赞赏,谢谢!