
对于线性可分的数据集,SVM通过硬间隔最大化学习线性分类器,能够将所有样本正确分类。然而,这种方法对于噪声样本非常敏感,并不推荐使用。相反,软间隔最大化允许一些样本被错误分类,从而提高了模型的泛化能力。在这种情况下,SVM使用虚线表示的超平面,其性能优于实线表示的硬间隔最大化的分类器。
对于线性不可分的数据集,SVM通过核技巧和非线性分类器来处理。它可以在高维空间中找到一个能够将数据分开的曲线,例如圆形。通过将原始空间的线性不可分问题转换为近似线性可分的问题,SVM成功解决了这类分类问题。
在数学层面,SVM通过最大间隔法得到凸二次规划问题,并求解其对偶问题。对偶问题不仅更容易求解,而且允许引入核函数,将问题推广到非线性领域。在非线性问题中,SVM使用核函数来代替高维空间中的内积计算,从而简化了计算过程。值得注意的是,SVM中的映射f不需要显式地知道,这是SVM的一个关键优势。
SMO算法是SVM的一种高效训练方法,它通过逐步最小化优化问题来找到SVM模型的解。在实际应用中,SMO算法可以处理线性可分和线性不可分的数据集,并可以通过调整核函数和超参数来适应不同的数据特点。
在代码示例中,SVM在线性可分数据集上表现出色,所有的支持向量都位于超平面附近。在线性不可分的数据集上,通过调整核函数参数和sigma值,SVM能够生成合适的决策边界,以适应数据集的特性。当支持向量较少时,决策边界可能较差;而支持向量过多时,模型将类似于KNN算法,每次都使用整个数据集进行分类。详情