目录
一.简介
1.1概念
支持向量机(Support Vector Machine,简称SVM)是一种监督学习算法,用于数据分类和回归分析。其目标是找到一个最优的超平面,将数据集划分成不同的类别。在这个过程中,SVM关注的是距离超平面最近的一些数据点,这些数据点被称为支持向量。
1.2优点
-
泛化能力:SVM通过最大化分类间隔(margin)来训练模型,这有助于减少模型的泛化误差,提高模型在未知数据上的表现。
-
适用于小样本:SVM算法在样本数量较少的情况下依然有效,因为它不依赖于整个数据集,而是依赖于支持向量。
-
高维数据处理:SVM通过使用核技巧可以有效地处理高维数据,即将数据映射到高维特征空间中,使得原本线性不可分的数据在新空间中变得线性可分。
-
避免过拟合:由于SVM的目标是最小化分类误差的同时最大化分类间隔,这有助于防止模型过拟合。
-
鲁棒性:SVM在参数选择合适的情况下,对于噪声和异常值有较好的鲁棒性。
1.3缺点
-
计算和存储成本:SVM算法的训练时间复杂度较高,为O(n^2)或O(n^3),在处理大规模数据集时会非常慢。此外,如果使用核函数,还需要存储核矩阵,这会占用大量内存。
-
参数选择:SVM算法中有多个参数需要调整,如C(惩罚参数)、核函数类型及参数等,参数的选择对模型性能有很大影响,需要通过交叉验证等方法进行优选。
-
非线性问题的核函数选择:对于非线性问题,核函数的选择和参数设置对模型性能至关重要,但没有通用的规则来确定最佳的核函数,通常需要根据具体问题进行尝试。
-
预测速度:SVM的预测速度可能较慢,尤其是当有大量支持向量时。
-
对不平衡数据的敏感性:如果数据集是类别不平衡的,SVM可能不会很好地工作,因为它旨在最大化间隔,而不考虑类别的分布。
二.支持向量机(SVM)
2.1工作原理
-
数据映射:SVM首先将输入数据映射到一个高维特征空间,这通常通过使用核函数来实现。映射的目的是为了找到一个最优的超平面,使得不同类别的数据在这个高维空间中可以被线性分割。
-
寻找最优超平面