SVM的选择之一:是选择不带任何内核参数,也叫线性核函数(linear kernel), h θ ( x ) = g ( θ 0 x 0 + θ 1 x 1 + … + θ n x n ) , p r e d i c t y = 1 i f θ T x > = 0 h_θ(x)=g(θ_0x_0+θ_1x_1+…+θ_nx_n),predict y=1 if θ^Tx>=0 hθ(x)=g(θ0x0+θ1x1+…+θnxn),predicty=1ifθTx>=0
SVM的选择之二:使用kernel f(比如高斯核函数Gaussian Kernel), h θ ( x ) = g ( θ 0 f 0 + θ 1 f 1 + … + θ n f n ) h_θ(x)=g(θ_0f_0+θ_1f_1+…+θ_nf_n) hθ(x)=g(θ0f0+θ1f1+…+θnfn),这里需要选择方差参数σ2

注意:如果使用高斯核函数,需要进行特征缩放

n n n为特征数, m m m为训练样本数
(1) 如果相较于 m m m而言, n n n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机
(2) 如果** n n n较小,而且 m m m大小中等**,例如 n n n在 1-1000 之间,而 m m m在10-10000之间,使用高斯核函数的支持向量机
(3)如果** n n n较小,而 m m m较大**,例如 n n n在1-1000之间,而 m m m大于50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机
注意:
如果训练集非常大,高斯核函数的SVM 会非常慢。 通常Andrew会尝试手动创建特征,然后用逻辑回归或者不带核函数的 SVM
(注: 逻辑回归和不带核函数的SVM 非常相似。但是根据实际情况,其中一个可能会更有效。随着 SVM 的复杂度增加、特征数量相当大时,不带核函数的SVM 就会表现得相当突出。)

在高斯核函数之外,还有其他一些选择,如:
它们的目标也都是根据训练集和地标之间的距离来构建新特征。
一个核函数需要满足 Mercer’s 定理,才能被 SVM 的优化软件正确处理
Mercer’s 定理: 任何半正定的函数都可以作为核函数。
所谓半正定的函数
f
(
x
i
,
x
j
)
f(x_i,x_j)
f(xi,xj):是指拥有训练数据集合
(
x
1
,
x
2
,
.
.
.
x
n
)
(x_1,x_2,...x_n)
(x1,x2,...xn),我们定义一个矩阵的元素
a
i
j
=
f
(
x
i
,
x
j
)
aij = f(x_i,x_j)
aij=f(xi,xj),这个矩阵式nn的,如果这个矩阵是半正定的,那么
f
(
x
i
,
x
j
)
f(x_i,x_j)
f(xi,xj)就称为半正定的函数。
.xn),我们定义一个矩阵的元素
a
i
j
=
f
(
x
i
,
x
j
)
aij = f(x_i,x_j)
aij=f(xi,xj),这个矩阵式nn的,如果这个矩阵是半正定的,那么
f
(
x
i
,
x
j
)
f(x_i,x_j)
f(xi,xj)就称为半正定的函数。
Mercer定理是核函数的充分条件,只要函数满足Mercer定理的条件,那么这个函数就是核函数。