支持向量机(Support Vector Machine, SVM)通常被认为是一种线性分类器,只适用于线性可分的数据。但是,SVM可以通过使用核函数将特征映射到高维空间,来处理非线性可分的数据。
核函数是一种用于测量两个数据点之间相似度的函数。通过将数据点从原始特征空间映射到高维特征空间,并在高维空间中计算相似度,SVM可以使用线性分类器在高维空间中分离非线性可分数据。具体来说,SVM通过引入核函数 K ( x i , x j ) K(x_i, x_j) K(xi,xj),将原始特征空间中的点 x i x_i xi和 x j x_j xj映射到高维空间中,即将每个样本点映射为一个高维特征向量,然后在高维空间中构建线性分类器。这样做的好处是,不需要显式计算高维特征空间中的向量,只需要通过核函数来计算点之间的相似度即可。
常见的核函数包括:
线性核函数:
K
(
x
i
,
x
j
)
=
x
i
T
x
j
K(x_i, x_j) = x_i^T x_j
K(xi,xj)=xiTxj
多项式核函数:
K
(
x
i
,
x
j
)
=
(
x
i
T
x
j
+
c
)
d
K(x_i, x_j) = (x_i^T x_j + c)^d
K(xi,xj)=(xiTxj+c)d
高斯核函数(径向基函数核):
K
(
x
i
,
x
j
)
=
exp
(
−
∣
x
i
−
x
j
∣
2
2
σ
2
)
K(x_i, x_j) = \text{exp}(-\frac{|x_i-x_j|^2}{2\sigma^2})
K(xi,xj)=exp(−2σ2∣xi−xj∣2)
Sigmoid核函数:
K
(
x
i
,
x
j
)
=
tanh
(
α
x
i
T
x
j
+
c
)
K(x_i, x_j) = \text{tanh}(\alpha x_i^T x_j + c)
K(xi,xj)=tanh(αxiTxj+c)
选择合适的核函数和对应的参数对模型性能的影响非常大。核函数的选择需要根据数据的性质和实际情况进行选择和调整。同时,由于引入核函数后,SVM需要优化的变量数量变多,计算量也会增加,因此在实际应用中需要权衡模型的精度和效率。