快速支持向量机(SVM)实现:原理、应用与优化策略
1. SVM核心:铰链损失及其变体
SVM算法的核心成本函数是铰链损失(hinge loss)。它与感知机的损失函数类似,对错误进行线性惩罚,当样本被错误分类到边界的另一侧时,会产生与边界距离成比例的误差。不过,铰链损失并非处处可微,这在某些情况下可能成为劣势。因此,有时会使用一些可微的变体来替代它。
1.1 常见变体
- 平方铰链损失(Squared Hinge Loss) :也称为L2损失,而铰链损失则被称为L1损失。它解决了铰链损失不可微的问题。
- Huber损失 :当误差等于或低于某个阈值h时,它是一个二次函数;否则,它是一个线性函数。这种方法结合了L1和L2变体的优点,对异常值具有较强的抵抗力。同时,它计算速度快,还能提供类别概率估计,这是铰链损失所不具备的能力。
1.2 损失函数选择
从实际应用的角度来看,并没有明确的报告表明Huber损失或L2铰链损失总是比铰链损失表现更好。最终,成本函数的选择需要根据具体的学习问题对可用函数进行测试。
2. Scikit - learn中的SVM实现
Scikit - learn通过两个来自台湾大学的C++库来实现SVM:LIBSVM和LIBLINEAR。这两个库免费且计算速度快,已经在许多解决方案中得到了验证。
2.1 分类实现
| 类名 | 用途 |
|---|
超级会员免费看
订阅专栏 解锁全文
1922

被折叠的 条评论
为什么被折叠?



