-
-
高级数的多项式模型来解决无法用直线进行分隔的分类问题,为了获得上图所示的判定边界,我们的模型可能是的
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
1
x
2
+
θ
4
x
1
2
+
θ
5
x
2
2
+
?
{{\theta }_{0}}+{{\theta }_{1}}{{x}_{1}}+{{\theta }_{2}}{{x}_{2}}+{{\theta }_{3}}{{x}_{1}}{{x}_{2}}+{{\theta }_{4}}x_{1}^{2}+{{\theta }_{5}}x_{2}^{2}+\cdots
θ0?+θ1?x1?+θ2?x2?+θ3?x1?x2?+θ4?x12?+θ5?x22?+?的形式
-
高阶项:确定是否需要且运算量大
-
寻找比高阶项更好的特征:我们可以用一系列的新的特征
f
f
f来替换模型中的每一项
f
1
=
x
1
,
f
2
=
x
2
,
f
3
=
x
1
x
2
,
f
4
=
x
1
2
,
f
5
=
x
2
2
{{f}_{1}}={{x}_{1}},{{f}_{2}}={{x}_{2}},{{f}_{3}}={{x}_{1}}{{x}_{2}},{{f}_{4}}=x_{1}^{2},{{f}_{5}}=x_{2}^{2}
f1?=x1?,f2?=x2?,f3?=x1?x2?,f4?=x12?,f5?=x22?得到
h
θ
(
x
)
=
θ
1
f
1
+
θ
2
f
2
+
θ
3
f
3
+
?
+
θ
n
f
n
h_{\theta}(x)=\theta_{1}f_{1}+\theta_{2}f_{2}+\theta_{3}f_{3}+\dots+\theta_{n}f_{n}
hθ?(x)=θ1?f1?+θ2?f2?+θ3?f3?+?+θn?fn?
-
除了对原有的特征进行组合以外,可以利用核函数来计算出新的特征。
-
地标
(
l
a
n
d
m
a
r
k
)
l
(
i
)
(landmark)l^{(i)}
(landmark)l(i)(地标的选取可以取样本本身),核函数
s
i
m
i
l
a
r
i
t
y
(
x
,
l
(
i
)
)
similarity(x,l^{(i)})
similarity(x,l(i))
-
高斯核函数(Gaussian Kernel):
f
1
=
s
i
m
i
l
a
r
i
t
y
(
x
,
l
(
1
)
)
=
e
(
?
∥
x
?
l
(
1
)
∥
2
2
σ
2
)
{{f}_{1}}=similarity(x,{{l}^{(1)}})=e(-\frac{{{\left\| x-{{l}^{(1)}} \right\|}^{2}}}{2{{\sigma }^{2}}})
f1?=similarity(x,l(1))=e(?2σ2∥x?l(1)∥2?),其中
∥
x
?
l
(
1
)
∥
2
=
∑
j
=
1
n
(
x
j
?
l
j
(
1
)
)
2
{{\left\| x-{{l}^{(1)}} \right\|}^{2}}=\sum{_{j=1}^{n}}{{({{x}_{j}}-l_{j}^{(1)})}^{2}}
∥∥?x?l(1)∥∥?2=∑j=1n?(xj??lj(1)?)2,这个函数与正态分布没什么实际上的关系,只是看上去像而已
-
作用:如果一个训练样本
x
x
x与地标
l
l
l之间的距离近似于0,则新特征
f
f
f近似于
e
?
0
=
1
e^{-0}=1
e?0=1,如果训练样本与地标之间距离较远,则
f
f
f近似于
e
?
(
远
距
离
大
数
)
→
0
e^{-(远距离大数)}{\to}0
e?(远距离大数)→0。
-
我们通常是根据训练集的数量选择地标的数量,即如果训练集中有m个样本,则我们选取m个地标,并且令**
l
(
1
)
=
x
(
1
)
,
l
(
2
)
=
x
(
2
)
,
.
.
.
.
.
,
l
(
m
)
=
x
(
m
)
l^{(1)}=x^{(1)},l^{(2)}=x^{(2)},.....,l^{(m)}=x^{(m)}
l(1)=x(1),l(2)=x(2),.....,l(m)=x(m)**:。这样做的好处在于:现在我们得到的新特征是建立在原有特征与训练集中所有其他特征之间距离的基础之上的
-
-
-
下面我们将核函数运用到支持向量机中,修改我们的支持向量机假设为:
? 给定
x
x
x,计算新特征
f
f
f,当
θ
T
f
>
=
0
θ^Tf>=0
θTf>=0时,预测
y
=
1
y=1
y=1,否则反之。
相应地修改代价函数为:
∑
j
=
1
n
=
m
θ
j
2
=
θ
T
θ
\sum\limits_{j=1}^{n=m}\theta _{j}^{2}={{\theta}^{T}}\theta
j=1∑n=m?θj2?=θTθ,
m
i
n
C
∑
i
=
1
m
[
y
(
i
)
c
o
s
t
1
(
θ
T
f
(
i
)
)
+
(
1
?
y
(
i
)
)
c
o
s
t
0
(
θ
T
f
(
i
)
)
]
+
1
2
∑
j
=
1
n
=
m
θ
j
2
min C\sum\limits_{i=1}^{m}{[{{y}^{(i)}}cos {{t}_{1}}}( {{\theta }^{T}}{{f}^{(i)}})+(1-{{y}^{(i)}})cos {{t}_{0}}( {{\theta }^{T}}{{f}^{(i)}})]+\frac{1}{2}\sum\limits_{j=1}^{n=m}{\theta _{j}^{2}}
minCi=1∑m?[y(i)cost1?(θTf(i))+(1?y(i))cost0?(θTf(i))]+21?j=1∑n=m?θj2?
-
n
n
n个特征换为
m
m
m个新特征
f
f
f
-
∑
j
=
1
n
=
m
θ
j
2
=
θ
T
θ
\sum\limits_{j=1}^{n=m}\theta _{j}^{2}={{\theta}^{T}}\theta
j=1∑n=m?θj2?=θTθ,我们用
θ
T
M
θ
θ^TMθ
θTMθ代替
θ
T
θ
θ^Tθ
θTθ,其中
M
M
M是根据我们选择的核函数而不同的一个矩阵。这样做的原因是为了简化计算。
-
理论上讲,我们也可以在逻辑回归中使用核函数,但是上面使用
M
M
M来简化计算的方法不适用与逻辑回归,因此计算将非常耗费时间
-
支持向量机也可以不使用核函数,不使用核函数又称为线性核函数(linear kernel),当我们不采用非常复杂的函数,或者我们的训练集特征
n
n
n非常多而样本
m
m
m非常少的时候,可以采用这种不带核函数的支持向量机。
-
下面是支持向量机的两个参数
C
C
C和
σ
\sigma
σ的影响(理解为
C
=
1
/
λ
C=1/\lambda
C=1/λ)
-
C
C
C较大时,相当于
λ
\lambda
λ较小,可能会导致过拟合,高方差;
-
C
C
C较小时,相当于
λ
\lambda
λ较大,可能会导致低拟合,高偏差;
-
σ
\sigma
σ较大时,高斯函数较平缓,可能会导致低方差,高偏差;
-
σ
\sigma
σ较小时,高斯函数变化剧烈,可能会导致低偏差,高方差。
-