参考教材:《模式识别》吴建鑫著
习题 3.2:K-均值聚类
a)证明下列优化公式对 K-均值的目标进行了形式化
a r g m i n γ i j , μ i ∑ i = 1 K ∑ j = 1 M γ i j ∣ ∣ x j − μ i ∣ ∣ 2 argmin_{γ_{ij},μ_i}\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}||x_j-μ_i||^2 argminγij,μii=1∑Kj=1∑Mγij∣∣xj−μi∣∣2
在这个公式中我们由内向外分析,首先我们观察
∣
∣
x
j
−
μ
i
∣
∣
2
||x_j-μ_i||^2
∣∣xj−μi∣∣2表示的是对于每一个样本
x
j
x_j
xj和
μ
j
μ_j
μj的二范数平方,也就代表二者的距离,再在这之前乘上
γ
i
j
γ_{ij}
γij就变成了
γ
i
j
∣
∣
x
j
−
μ
i
∣
∣
2
γ_{ij}||x_j-μ_i||^2
γij∣∣xj−μi∣∣2。因为我们有
γ
i
j
=
{
1
x
j
被
分
到
了
第
i
组
0
否
则
γ_{ij} = \begin{cases} 1 \quad x_j被分到了第i组\\ 0 \quad 否则 \end{cases}
γij={1xj被分到了第i组0否则
所以
γ
i
j
∣
∣
x
j
−
μ
i
∣
∣
2
γ_{ij}||x_j-μ_i||^2
γij∣∣xj−μi∣∣2只有在
x
j
x_j
xj被分到了第i组的时候才为
∣
∣
x
j
−
μ
i
∣
∣
2
||x_j-μ_i||^2
∣∣xj−μi∣∣2。那么对于每一个固定的i,也就是对于每一个固定的类别,我们有
∑
j
=
1
M
γ
i
j
∣
∣
x
j
−
μ
i
∣
∣
2
\sum_{j=1}^{M}γ_{ij}||x_j-μ_i||^2
∑j=1Mγij∣∣xj−μi∣∣2即为每一个样本到这个类别的代表的距离的平方之和,又由于
γ
i
j
γ_{ij}
γij的特殊性质,这其实是所有被分到第i类的样本到这个类的代表的距离之和。如果再对i求和,变成
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
∣
∣
x
j
−
μ
i
∣
∣
2
\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}||x_j-μ_i||^2
∑i=1K∑j=1Mγij∣∣xj−μi∣∣2,那么就是对于每一个样本到他所属的类别的代表的距离之和。
我们看回K-均值聚类,K-均值聚类尝试寻找数据的自然类别,用户设置类别的个数,从而寻找到好的类别中心。也就是说我们要求每一个样本到它所在的类别的中心的距离尽可能地小,所以当我们求 a r g m i n γ i j , μ i ∑ i = 1 K ∑ j = 1 M γ i j ∣ ∣ x j − μ i ∣ ∣ 2 argmin_{γ_{ij},μ_i}\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}||x_j-μ_i||^2 argminγij,μi∑i=1K∑j=1Mγij∣∣xj−μi∣∣2的时候,实际上就是求解K-均值聚类的过程。
所以 a r g m i n γ i j , μ i ∑ i = 1 K ∑ j = 1 M γ i j ∣ ∣ x j − μ i ∣ ∣ 2 argmin_{γ_{ij},μ_i}\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}||x_j-μ_i||^2 argminγij,μi∑i=1K∑j=1Mγij∣∣xj−μi∣∣2对K-均值聚类目标进行了形式化。
b)分别推导 Lloyd 算法两步中 γ i j γ_{ij} γij和 μ i μ_{i} μi的更新规则
在初始时先对 γ i j γ_{ij} γij和 μ i μ_{i} μi进行初始化,设初始时分别为 γ i j ( 0 ) γ_{ij}^{(0)} γij(0)和 μ i ( 0 ) μ_{i}^{(0)} μi(0),第p次迭代后的结果为 γ i j ( p ) γ_{ij}^{(p)} γij(p)和 μ i ( p ) μ_{i}^{(p)} μi(p)。
i. 固定 μ i μ_{i} μi(对于所有的1≤i≤K),找到 γ i j γ_{ij} γij使得损失函数最小化
在这一步中我们知道
μ
i
μ_{i}
μi是固定不变的,假设这是第p+1次迭代,那么我们就有
γ
i
j
(
p
+
1
)
=
a
r
g
m
i
n
γ
i
j
(
p
)
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
γ_{ij}^{(p+1)} = argmin_{\gamma_{ij}^{(p)}}\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p)}||x_j-μ_i^{(p)}||^2
γij(p+1)=argminγij(p)i=1∑Kj=1∑Mγij(p)∣∣xj−μi(p)∣∣2
这一步实际上就是根据
μ
i
(
p
)
μ_i^{(p)}
μi(p)对样本重新进行分类,所以我们有
γ
i
j
(
p
+
1
)
=
{
1
i
f
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
≤
∣
x
j
−
μ
k
(
p
)
∣
∣
2
k
=
1
,
2
…
…
0
e
l
s
e
γ_{ij}^{(p+1)} = \begin{cases} 1 \quad if \quad ||x_j-μ_i^{(p)}||^2 \leq |x_j-μ_k^{(p)}||^2 \quad k = 1,2……\\ 0 \quad else \end{cases}
γij(p+1)={1if∣∣xj−μi(p)∣∣2≤∣xj−μk(p)∣∣2k=1,2……0else
ii.固定 γ i j γ_{ij} γij(对于所有的1≤i≤K,1≤j≤M),找到 μ i μ_{i} μi使得损失函数最小化
在这一步中我们知道
γ
i
j
γ_{ij}
γij是固定不变的,同样我们讨论第p+1次迭代,我们有
μ
i
(
p
+
1
)
=
a
r
g
m
i
n
μ
i
j
(
p
)
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
+
1
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
μ_{i}^{(p+1)} = argmin_{\mu_{ij}^{(p)}}\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p+1)}||x_j-μ_i^{(p)}||^2
μi(p+1)=argminμij(p)i=1∑Kj=1∑Mγij(p+1)∣∣xj−μi(p)∣∣2
因为此时
γ
i
j
γ_{ij}
γij是固定不动的,由于
γ
i
j
γ_{ij}
γij的特性我们可以知道
∑
j
=
1
M
γ
i
j
(
p
+
1
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
\sum_{j=1}^{M}γ_{ij}^{(p+1)}||x_j-μ_i^{(p)}||^2
∑j=1Mγij(p+1)∣∣xj−μi(p)∣∣2其实就是被分到第i类的所有样本到代表的距离,那么
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
+
1
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p+1)}||x_j-μ_i^{(p)}||^2
∑i=1K∑j=1Mγij(p+1)∣∣xj−μi(p)∣∣2就是在
γ
i
j
(
p
)
γ_{ij}^{(p)}
γij(p)下,每一个样本到它所在的类别的代表的距离之和,很显然地如果在每一个类中,这个类的样本到这个类的代表的距离之和最小,那么所有的类相加结果也是最小的,所以只要对每一个类的
μ
i
μ_{i}
μi进行优化,得到的结果进行组合即为最终结果。因为我们评估距离使用的是欧氏距离,所以
μ
i
(
p
+
1
)
μ_{i}^{(p+1)}
μi(p+1)的最优值即为所有被分到第i类样本的平均值。所以我们有
μ
i
(
p
+
1
)
=
1
∑
j
=
1
M
γ
i
j
(
p
+
1
)
∗
∑
j
=
1
K
γ
i
j
(
p
+
1
)
x
j
μ_{i}^{(p+1)} = \frac{1}{\sum_{j=1}^{M}\gamma_{ij}^{(p+1)}}*\sum_{j=1}^{K}\gamma_{ij}^{(p+1)}x_{j}
μi(p+1)=∑j=1Mγij(p+1)1∗j=1∑Kγij(p+1)xj
c)证明 Lloyd 算法能够收敛
设在Lloyd算法中第p次迭代得到 f ( p ) = ∑ i = 1 K ∑ j = 1 M γ i j ( p ) ∣ ∣ x j − μ i ( p ) ∣ ∣ 2 f^{(p)} = \sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p)}||x_j-μ_i^{(p)}||^2 f(p)=∑i=1K∑j=1Mγij(p)∣∣xj−μi(p)∣∣2,
欲证Lloyd算法收敛,我们只需要证明 f ( p + 1 ) ≤ f ( p ) f^{(p+1)}≤f^{(p)} f(p+1)≤f(p)恒成立即可。
即证
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
≥
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
+
1
)
∣
∣
x
j
−
μ
i
(
p
+
1
)
∣
∣
2
\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p)}||x_j-μ_i^{(p)}||^2 \geq \sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p+1)}||x_j-μ_i^{(p+1)}||^2
i=1∑Kj=1∑Mγij(p)∣∣xj−μi(p)∣∣2≥i=1∑Kj=1∑Mγij(p+1)∣∣xj−μi(p+1)∣∣2
下面我们讨论两种情况,分别是迭代后没有样本的分类发生了改变
和迭代后没有样本的分类发生改变
。
迭代后没有样本的分类发生了改变
在这种情况下我们可以知道迭代前后 γ i j γ_{ij} γij的取值不发生改变,又根据 μ i ( p + 1 ) μ_{i}^{(p+1)} μi(p+1)的更新公式,如果 γ i j ( p + 1 ) = γ i j ( p ) γ_{ij}^{(p+1)} = γ_{ij}^{(p) } γij(p+1)=γij(p),那么 μ i j ( p + 1 ) = μ i j ( p ) \mu_{ij}^{(p+1)} = \mu_{ij}^{(p) } μij(p+1)=μij(p),此时算法显然收敛。
迭代后没有样本的分类发生改变
如果有迭代后没有样本的分类发生改变,那么我们不妨假设发生改变的是样本 x 1 x_1 x1,且只有 x 1 x_1 x1的类别发生能改变,在第p次迭代后在a类中,p+1次迭代之后在b类中,那么我们就有$||x_1-μ_a{(p+1)}||2 \geq ||x_1-μ_b{(p+1)}||2 。 同 时 对 于 。同时对于 。同时对于\mu_i 的 更 新 过 程 我 们 有 对 所 有 的 的更新过程我们有对所有的 的更新过程我们有对所有的x_j$都有 $||x_j-μ_i{(p+1)}||2 \leq |x_j-μ_i{§}||2 $.
对于p+1次迭代相对于第p次迭代,我们只有
γ
a
1
\gamma_{a1}
γa1由1变为了0,
γ
b
1
\gamma_{b1}
γb1由0变为了1。
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
+
1
)
∣
∣
x
j
−
μ
i
(
p
+
1
)
∣
∣
2
=
∑
i
=
1
,
i
≠
a
,
i
≠
b
K
∑
j
=
1
M
γ
i
j
(
p
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
+
∑
j
=
1
M
γ
a
j
(
p
+
1
)
∣
∣
x
j
−
μ
a
(
p
+
1
)
∣
∣
2
+
∑
j
=
1
M
γ
b
j
(
p
+
1
)
∣
∣
x
j
−
μ
b
(
p
+
1
)
∣
∣
2
=
∑
i
=
1
,
i
≠
a
,
i
≠
b
K
∑
j
=
1
M
γ
i
j
(
p
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
+
∑
j
=
2
M
γ
a
j
(
p
)
∣
∣
x
j
−
μ
a
(
p
+
1
)
∣
∣
2
+
∑
j
=
2
M
γ
b
j
(
p
)
∣
∣
x
j
−
μ
b
(
p
+
1
)
∣
∣
2
+
∣
∣
x
1
−
μ
b
(
p
+
1
)
∣
∣
2
欲
证
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
)
∣
∣
x
j
−
μ
i
(
p
)
∣
∣
2
≥
∑
i
=
1
K
∑
j
=
1
M
γ
i
j
(
p
+
1
)
∣
∣
x
j
−
μ
i
(
p
+
1
)
∣
∣
2
即
证
∑
j
=
2
M
γ
a
j
(
p
)
∣
∣
x
j
−
μ
a
(
p
+
1
)
∣
∣
2
+
∑
j
=
2
M
γ
b
j
(
p
)
∣
∣
x
j
−
μ
b
(
p
+
1
)
∣
∣
2
+
∣
∣
x
1
−
μ
b
(
p
+
1
)
∣
∣
2
≤
∑
j
=
1
M
γ
a
j
(
p
)
∣
∣
x
j
−
μ
a
(
p
)
∣
∣
2
+
∑
j
=
1
M
γ
b
j
(
p
)
∣
∣
x
j
−
μ
b
(
p
)
∣
∣
2
即
证
∑
j
=
2
M
γ
a
j
(
p
)
∣
∣
x
j
−
μ
a
(
p
+
1
)
∣
∣
2
+
∑
j
=
2
M
γ
b
j
(
p
)
∣
∣
x
j
−
μ
b
(
p
+
1
)
∣
∣
2
+
∣
∣
x
1
−
μ
b
(
p
+
1
)
∣
∣
2
≤
∑
j
=
2
M
γ
a
j
(
p
)
∣
∣
x
j
−
μ
a
(
p
)
∣
∣
2
+
∑
j
=
2
M
γ
b
j
(
p
)
∣
∣
x
j
−
μ
b
(
p
)
∣
∣
2
+
∣
∣
x
1
−
μ
a
(
p
)
∣
∣
2
因
为
我
们
只
有
x
0
的
分
类
发
生
了
改
变
,
所
以
有
∑
j
=
2
M
γ
a
j
(
p
)
∣
∣
x
j
−
μ
a
(
p
+
1
)
∣
∣
2
=
∑
j
=
2
M
γ
a
j
(
p
)
∣
∣
x
j
−
μ
a
(
p
)
∣
∣
2
∑
j
=
2
M
γ
b
j
(
p
)
∣
∣
x
j
−
μ
b
(
p
+
1
)
∣
∣
2
=
∑
j
=
2
M
γ
b
j
(
p
)
∣
∣
x
j
−
μ
b
(
p
)
∣
∣
2
所
以
只
要
证
∣
∣
x
1
−
μ
b
(
p
+
1
)
∣
∣
2
≤
∣
∣
x
1
−
μ
a
(
p
)
∣
∣
2
因
为
对
任
意
i
,
j
都
有
∣
∣
x
j
−
μ
i
(
p
+
1
)
∣
∣
2
≤
∣
x
j
−
μ
i
(
p
)
∣
∣
2
所
以
另
i
=
a
,
j
=
1
,
我
们
有
∣
∣
x
1
−
μ
a
(
p
+
1
)
∣
∣
2
≤
∣
x
1
−
μ
a
(
p
)
∣
∣
2
因
为
由
上
述
∣
∣
x
1
−
μ
b
(
p
+
1
)
∣
∣
2
≤
∣
x
1
−
μ
a
(
p
+
1
)
∣
∣
2
,
∣
∣
x
1
−
μ
a
(
p
+
1
)
∣
∣
2
≤
∣
x
1
−
μ
a
(
p
)
∣
∣
2
所
以
∣
∣
x
1
−
μ
b
(
p
+
1
)
∣
∣
2
≤
∣
∣
x
1
−
μ
a
(
p
)
∣
∣
2
收
敛
性
得
证
\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p+1)}||x_j-μ_i^{(p+1)}||^2 \\ =\sum_{i=1,i\neq a,i \neq b}^{K}\sum_{j=1}^{M}γ_{ij}^{(p)}||x_j-μ_i^{(p)}||^2 + \sum_{j=1}^{M}γ_{aj}^{(p+1)}||x_j-μ_a^{(p+1)}||^2 + \sum_{j=1}^{M}γ_{bj}^{(p+1)}||x_j-μ_b^{(p+1)}||^2\\ = \sum_{i=1,i\neq a,i \neq b}^{K}\sum_{j=1}^{M}γ_{ij}^{(p)}||x_j-μ_i^{(p)}||^2 + \sum_{j=2}^{M}γ_{aj}^{(p)}||x_j-μ_a^{(p+1)}||^2 + \sum_{j=2}^{M}γ_{bj}^{(p)}||x_j-μ_b^{(p+1)}||^2 + ||x_1-μ_b^{(p+1)}||^2\\ 欲证\sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p)}||x_j-μ_i^{(p)}||^2 \geq \sum_{i=1}^{K}\sum_{j=1}^{M}γ_{ij}^{(p+1)}||x_j-μ_i^{(p+1)}||^2\\ 即证 \sum_{j=2}^{M}γ_{aj}^{(p)}||x_j-μ_a^{(p+1)}||^2 + \sum_{j=2}^{M}γ_{bj}^{(p)}||x_j-μ_b^{(p+1)}||^2 + ||x_1-μ_b^{(p+1)}||^2\leq \sum_{j=1}^{M}γ_{aj}^{(p)}||x_j-μ_a^{(p)}||^2 + \sum_{j=1}^{M}γ_{bj}^{(p)}||x_j-μ_b^{(p)}||^2\\ 即证\sum_{j=2}^{M}γ_{aj}^{(p)}||x_j-μ_a^{(p+1)}||^2 + \sum_{j=2}^{M}γ_{bj}^{(p)}||x_j-μ_b^{(p+1)}||^2 + ||x_1-μ_b^{(p+1)}||^2\leq \sum_{j=2}^{M}γ_{aj}^{(p)}||x_j-μ_a^{(p)}||^2 + \sum_{j=2}^{M}γ_{bj}^{(p)}||x_j-μ_b^{(p)}||^2 + ||x_1-μ_a^{(p)}||^2\\ 因为我们只有x_0的分类发生了改变,所以有\\ \sum_{j=2}^{M}γ_{aj}^{(p)}||x_j-μ_a^{(p+1)}||^2 =\sum_{j=2}^{M}γ_{aj}^{(p)}||x_j-μ_a^{(p)}||^2 \\ \sum_{j=2}^{M}γ_{bj}^{(p)}||x_j-μ_b^{(p+1)}||^2 = \sum_{j=2}^{M}γ_{bj}^{(p)}||x_j-μ_b^{(p)}||^2 \\ 所以只要证 ||x_1-μ_b^{(p+1)}||^2 \leq ||x_1-μ_a^{(p)}||^2\\ 因为对任意i,j都有||x_j-μ_i^{(p+1)}||^2 \leq |x_j-μ_i^{(p)}||^2 \\ 所以另i = a, j = 1,我们有||x_1-μ_a^{(p+1)}||^2 \leq |x_1-μ_a^{(p)}||^2 \\ 因为由上述||x_1-μ_b^{(p+1)}||^2 \leq |x_1-μ_a^{(p+1)}||^2 ,||x_1-μ_a^{(p+1)}||^2 \leq |x_1-μ_a^{(p)}||^2 \\ 所以||x_1-μ_b^{(p+1)}||^2 \leq ||x_1-μ_a^{(p)}||^2\\ 收敛性得证
i=1∑Kj=1∑Mγij(p+1)∣∣xj−μi(p+1)∣∣2=i=1,i=a,i=b∑Kj=1∑Mγij(p)∣∣xj−μi(p)∣∣2+j=1∑Mγaj(p+1)∣∣xj−μa(p+1)∣∣2+j=1∑Mγbj(p+1)∣∣xj−μb(p+1)∣∣2=i=1,i=a,i=b∑Kj=1∑Mγij(p)∣∣xj−μi(p)∣∣2+j=2∑Mγaj(p)∣∣xj−μa(p+1)∣∣2+j=2∑Mγbj(p)∣∣xj−μb(p+1)∣∣2+∣∣x1−μb(p+1)∣∣2欲证i=1∑Kj=1∑Mγij(p)∣∣xj−μi(p)∣∣2≥i=1∑Kj=1∑Mγij(p+1)∣∣xj−μi(p+1)∣∣2即证j=2∑Mγaj(p)∣∣xj−μa(p+1)∣∣2+j=2∑Mγbj(p)∣∣xj−μb(p+1)∣∣2+∣∣x1−μb(p+1)∣∣2≤j=1∑Mγaj(p)∣∣xj−μa(p)∣∣2+j=1∑Mγbj(p)∣∣xj−μb(p)∣∣2即证j=2∑Mγaj(p)∣∣xj−μa(p+1)∣∣2+j=2∑Mγbj(p)∣∣xj−μb(p+1)∣∣2+∣∣x1−μb(p+1)∣∣2≤j=2∑Mγaj(p)∣∣xj−μa(p)∣∣2+j=2∑Mγbj(p)∣∣xj−μb(p)∣∣2+∣∣x1−μa(p)∣∣2因为我们只有x0的分类发生了改变,所以有j=2∑Mγaj(p)∣∣xj−μa(p+1)∣∣2=j=2∑Mγaj(p)∣∣xj−μa(p)∣∣2j=2∑Mγbj(p)∣∣xj−μb(p+1)∣∣2=j=2∑Mγbj(p)∣∣xj−μb(p)∣∣2所以只要证∣∣x1−μb(p+1)∣∣2≤∣∣x1−μa(p)∣∣2因为对任意i,j都有∣∣xj−μi(p+1)∣∣2≤∣xj−μi(p)∣∣2所以另i=a,j=1,我们有∣∣x1−μa(p+1)∣∣2≤∣x1−μa(p)∣∣2因为由上述∣∣x1−μb(p+1)∣∣2≤∣x1−μa(p+1)∣∣2,∣∣x1−μa(p+1)∣∣2≤∣x1−μa(p)∣∣2所以∣∣x1−μb(p+1)∣∣2≤∣∣x1−μa(p)∣∣2收敛性得证
习题 4.6 k-NN 方法回归
a)对 E [ ( y − f ( x : D ) ) 2 ] E[(y-f(x:D))^2] E[(y−f(x:D))2]的偏置-方差分解
$$
E[(y-f(x:D))^2] = E[(F(x)-f(x:D) + \epsilon)^2] = E[(F(x)-f(x:D))^2 + \epsilon^2 + 2(F(x)-f(x:D))\epsilon]\
由于独立性,E[\epsilon^2] = (E[\epsilon])^2 + Var(\epsilon) = \sigma^2\
E[(F(x)-f(x))\epsilon] = E[F(x)-f(x:D)]E[\epsilon] = 0\
∴E[(y-f(x:D))^2] = E[(F(x)-f(x:D))^2] + \sigma^2\
∵E[(F(x)-f(x:D))^2] = (E[F(x)-f(x:D)])^2 + Var(F(x)-f(x:D))\
且(E[F(x)-f(x:D)])^2 = (F(x)-E_D[f(x:D)])^2\
Var(F(x)-f(x:D)) = Var(-f(x:D)) = Var(f(x:D)) = E[(f-E_D[f(x:D)])^2]\
综上所述,E[(y-f(x:D))^2] = (F-E[f_D(x:D)])^2 + E[(f(x:D) - E_D[f(x:D)])^2] + \sigma^2
$$
b)使用 f ( x : D ) = 1 k ∑ i = 1 k y n n ( i ) f(x:D) = \frac{1}{k}\sum_{i=1}^{k}y_{nn(i)} f(x:D)=k1∑i=1kynn(i)来计算E[f]这个应该写到哪一步呢?F(xnn(i))得值是我们要估计的,那就是未知的?所以不应该算到这里是吗?
E [ f ] = E [ 1 k ∑ i = 1 k y n n ( i ) ] = 1 k ∑ i = 1 k E [ y n n ( i ) ] = 1 k ∑ i = 1 k E [ F ( x n n ( i ) ) + ϵ ] = 1 k ∑ i = 1 k ( E [ F ( x n n ( i ) ) ] + E [ ϵ ] ) = 1 k ∑ i = 1 k E [ F ( x n n ( i ) ) ] = 1 k ∑ i = 1 k F ( x n n ( i ) ) E[f] = E[\frac{1}{k}\sum_{i=1}^{k}y_{nn(i)}] = \frac{1}{k}\sum_{i=1}^{k}E[y_{nn(i)}]\\ = \frac{1}{k}\sum_{i=1}^{k}E[F(x_{nn(i)}) + \epsilon] \\ = \frac{1}{k}\sum_{i=1}^{k}(E[F(x_{nn(i)})] + E[\epsilon])\\ = \frac{1}{k}\sum_{i=1}^{k}E[F(x_{nn(i)})]\\ = \frac{1}{k}\sum_{i=1}^{k}F(x_{nn(i)}) E[f]=E[k1i=1∑kynn(i)]=k1i=1∑kE[ynn(i)]=k1i=1∑kE[F(xnn(i))+ϵ]=k1i=1∑k(E[F(xnn(i))]+E[ϵ])=k1i=1∑kE[F(xnn(i))]=k1i=1∑kF(xnn(i))
c) 使用x和y来代替分解公式中f的那一项
已知分解公式为:
E
[
(
y
−
f
(
x
:
D
)
)
2
]
=
(
F
−
E
[
f
D
(
x
:
D
)
]
)
2
+
E
[
(
f
(
x
:
D
)
−
E
D
[
f
(
x
:
D
)
]
)
2
]
+
σ
2
E[(y-f(x:D))^2] = (F-E[f_D(x:D)])^2 + E[(f(x:D) - E_D[f(x:D)])^2] + \sigma^2
E[(y−f(x:D))2]=(F−E[fD(x:D)])2+E[(f(x:D)−ED[f(x:D)])2]+σ2
所以
E
[
(
y
−
f
]
=
(
F
(
x
)
−
E
D
[
f
]
)
2
+
E
D
[
(
f
−
E
D
[
f
]
)
2
]
+
σ
2
=
(
F
(
x
)
−
1
k
∑
i
=
1
k
E
D
[
y
n
n
(
i
)
]
)
2
+
E
D
[
(
f
−
1
k
∑
i
=
1
k
E
D
[
y
n
n
(
i
)
]
)
2
]
+
σ
2
=
(
F
(
x
)
−
1
k
∑
i
=
1
k
E
D
[
y
n
n
(
i
)
]
)
2
+
E
D
[
(
1
k
∑
i
=
1
k
y
n
n
(
i
)
−
1
k
∑
i
=
1
k
E
D
[
y
n
n
(
i
)
]
)
2
]
+
σ
2
=
(
F
(
x
)
−
1
k
∑
i
=
1
k
F
(
x
n
n
(
i
)
)
2
+
E
D
[
(
1
k
∑
i
=
1
k
y
n
n
(
i
)
−
1
k
∑
i
=
1
k
F
(
x
n
n
(
i
)
)
2
]
+
σ
2
E[(y-f] = (F(x)-E_D[f])^2 + E_D[(f - E_D[f])^2] + \sigma^2\\ = (F(x)-\frac{1}{k}\sum_{i=1}^{k}E_D[y_{nn(i)}])^2 + E_D[(f-\frac{1}{k}\sum_{i=1}^{k}E_D[y_{nn(i)}])^2] + \sigma^2\\ = (F(x)-\frac{1}{k}\sum_{i=1}^{k}E_D[y_{nn(i)}])^2 + E_D[(\frac{1}{k}\sum_{i=1}^{k}y_{nn(i)}-\frac{1}{k}\sum_{i=1}^{k}E_D[y_{nn(i)}])^2] + \sigma^2\\ = (F(x)-\frac{1}{k}\sum_{i=1}^{k}F(x_{nn(i)})^2 + E_D[(\frac{1}{k}\sum_{i=1}^{k}y_{nn(i)}-\frac{1}{k}\sum_{i=1}^{k}F(x_{nn(i)})^2] + \sigma^2
E[(y−f]=(F(x)−ED[f])2+ED[(f−ED[f])2]+σ2=(F(x)−k1i=1∑kED[ynn(i)])2+ED[(f−k1i=1∑kED[ynn(i)])2]+σ2=(F(x)−k1i=1∑kED[ynn(i)])2+ED[(k1i=1∑kynn(i)−k1i=1∑kED[ynn(i)])2]+σ2=(F(x)−k1i=1∑kF(xnn(i))2+ED[(k1i=1∑kynn(i)−k1i=1∑kF(xnn(i))2]+σ2
d)方差项是多少?当k改变时,它会如何变化?
方差项为 E [ ( 1 k ∑ i = 1 k y n n ( i ) − 1 k ∑ i = 1 k F ( x n n ( i ) ) 2 ] = 1 k E D [ ( ∑ i = 1 k ϵ n n ( i ) ) 2 ] E[(\frac{1}{k}\sum_{i=1}^{k}y_{nn(i)}-\frac{1}{k}\sum_{i=1}^{k}F(x_{nn(i)})^2] = \frac{1}{k}E_D[(\sum_{i=1}^{k}\epsilon_{nn(i)})^2] E[(k1∑i=1kynn(i)−k1∑i=1kF(xnn(i))2]=k1ED[(∑i=1kϵnn(i))2]
方差项会随着k的增大先减小后增大。当k过小时,模型过于简单,得到的方差会很大;而当k过大时,模型过于复杂,将噪声也纳入考虑范围时得到的方差也会很大。而由于KNN算法的限制,k最大只能取到样本数目这么多个的值,所以u会出现模型过拟合的情况,方差项只会随着k的增大而减小。
e) 偏置的平方项是多少?它会如何随k变化?
偏置的平方项为 ( F − 1 k ∑ i = 1 k E [ y n n ( i ) ] ) 2 (F-\frac{1}{k}\sum_{i=1}^{k}E[y_{nn(i)}])^2 (F−k1∑i=1kE[ynn(i)])2
偏置的平方项会随着k的增大而减小。当k=n时,我们考虑 E [ ϵ ] = 0 E[\epsilon] = 0 E[ϵ]=0,那么此时 F = 1 k ∑ i = 1 k E [ y n n ( i ) ] F=\frac{1}{k}\sum_{i=1}^{k}E[y_{nn(i)}] F=k1∑i=1kE[ynn(i)]偏执为0。
习题 4.9 混淆矩阵
a) 证明在测试集上的总代价等于 t r ( C T A ) tr(C^TA) tr(CTA)
已知在测试集上的总代价为多有哦样本中错分的样本你的代价之和,数学上的形式化可表示为 ∑ i = 1 k ∑ m = 1 k C m i A m i \sum_{i=1}^k\sum_{m=1}^kC_{mi}A_{mi} ∑i=1k∑m=1kCmiAmi ,其中 ∑ m = 1 k C m i A m i \sum_{m=1}^kC_{mi}A_{mi} ∑m=1kCmiAmi 表示的是所有错分到第i类的样本的价值之和,那么 ∑ i = 1 k ∑ m = 1 k C m i A m i \sum_{i=1}^k\sum_{m=1}^kC_{mi}A_{mi} ∑i=1k∑m=1kCmiAmi 表示的即为被错分到每一个类别的样本的代价之和,也就是在测试集上的总的代价。
易知 ( C T A ) i j = ∑ m = 1 k C m i A m j (C^TA)_{ij} = \sum_{m=1}^kC_{mi}A_{mj} (CTA)ij=∑m=1kCmiAmj , 又由矩阵的迹的定义我们可以知道 t r ( C T A ) = ∑ i = 1 k ( C T A ) i i = ∑ i = 1 k ∑ m = 1 k C m i A m i tr(C^TA) = \sum_{i=1}^k(C^TA)_{ii} = \sum_{i=1}^k\sum_{m=1}^kC_{mi}A_{mi} tr(CTA)=∑i=1k(CTA)ii=∑i=1k∑m=1kCmiAmi
所以 t r ( C T A ) = ∑ i = 1 k ( C T A ) i i = ∑ i = 1 k ∑ m = 1 k C m i A m i tr(C^TA) = \sum_{i=1}^k(C^TA)_{ii} = \sum_{i=1}^k\sum_{m=1}^kC_{mi}A_{mi} tr(CTA)=∑i=1k(CTA)ii=∑i=1k∑m=1kCmiAmi,即在测试集上的总代价等于 t r ( C T A ) tr(C^TA) tr(CTA)
b)在不平衡分类的问题中,你更喜欢混淆矩阵还是规范化的混淆矩阵?为什 么?
规范化的混淆矩阵。
因为在不平衡问题中,某一个类别的样本数目非常多设为类别A,而另一个类别的样本数目非常少设为类别B。在这种情况下,如果不进行规范化,对于B类的错分我们不能看出准确的结果,因为B类本身数量就很少,那么错分的样本数量也一定很少。但是如果规范化之后,可以看到B类的错分相对于整体的比例,可以更加清晰地判断分类器的性能。
我们举一个简单的例子来解释这个问题,假设我们有一百个样本,其中有95只猫,5只狗,在我们的分类器把所有的样本都识别成猫。如果我们使用不规范化的混淆矩阵,可以得到如下结果
猫 | 狗 | |
---|---|---|
猫 | 95 | 0 |
狗 | 5 | 0 |
我们看到将狗错识为猫的样本数只有5个,会认为错误率并不高,但是实际上对于狗的分类错误率我们达到了100%。但是如果我们使用规范化的混淆矩阵,会得到如下结果
猫 | 狗 | |
---|---|---|
猫 | 1 | 0 |
狗 | 1 | 0 |
实际上我们可以知道将狗识别为猫的错误率达到了1也就是100%
所以对于不平衡问题,规范化的混淆矩阵更能清晰客观地展现出正确率和错误率。
习题5.1奇异值分解
a) X X T XX^T XXT的特征值和特征向量是什么
X X T = U Σ V T V Σ T U T = U Σ Σ T U T XX^T=UΣV^TVΣ^TU^T=UΣΣ^TU^T XXT=UΣVTVΣTUT=UΣΣTUT
X X T XX^T XXT的特征向量为X的左奇异向量,也就是矩阵U的各列。 Σ Σ T ΣΣ^T ΣΣT的对角线的非零元素即为矩阵 A A T AA^T AAT的特征值
b) X T X X^TX XTX的特征值和特征向量是什么
X T X = V Σ T U T U Σ V T = V Σ T Σ V T X^TX=VΣ^TU^TUΣV^T=VΣ^TΣV^T XTX=VΣTUTUΣVT=VΣTΣVT
X T X X^TX XTX的特征向量为X的右奇异向量,也就是矩阵V的各列。 Σ T Σ Σ^TΣ ΣTΣ的对角线的非零元素即为矩阵 X T X X^TX XTX的特征值。
c) X X T XX^T XXT与 X T X X^TX XTX各自的特征值之间存在什么样的联系?
他们的非零特征值是相等的,因为Σ是一个对角阵,所以 Σ T Σ Σ^TΣ ΣTΣ和 Σ Σ T ΣΣ^T ΣΣT的对角线的非零值都是相等的。
d)X的奇异值和 X X T ( X T X ) XX^T(X^TX) XXT(XTX)的特征值之间存在什么样的联系?
X X T XX^T XXT与 X T X X^TX XTX的非零特征值就是X的奇异值的算术平方根
e)如果m=2、n=100000,你会如何计算 X T X X^TX XTX的特征值?
由c)问可知, X X T XX^T XXT与 X T X X^TX XTX各自的特征值中的非零特征值是相等的,所以可以计算 X X T XX^T XXT的特征值,也就是 X T X X^TX XTX的特征值。
习题5.3 使用 Matlab 或 GNU Octave 完成以下实验
a)使用 x=randn(2000,2)*[2 1;1 2]生成 2000 个样本,每个样本都是二维的,使 用 scatter 函数画出这 2000 个样本;
clear all;
x = randn(2000,2)*[2 1;1 2];
x1 = x(1:end,1);
x2 = x(1:end,2);
ax1 = subplot(2,1,1);
scatter(ax1,x1,x2);
title('original');
b)对这些样本进行PCA变换并保留所有的2个维度,使用scatter函数画出PCA 后的样本
clear all;
x = randn(2000,2)*[2 1;1 2];
x1 = x(1:end,1);
x2 = x(1:end,2);
ax1 = subplot(2,2,1);
scatter(ax1,x1,x2);
title('original');
k = 2;
xavg = mean(x);
xavgt = transpose(xavg);
cov = zeros(2,2);
for i = 1:2000
xtemp = x(i,:);
cov = cov + transpose((xtemp-xavgt))*(xtemp-xavgt);
end
cov = cov/2000;
%V表示的是特征向量 D表示的是特征值
[V,D]=eig(cov);
transV = transpose(V);
y = zeros(2000,2);
for i = 1:2000
xtemp = x(i,:);
dis = xtemp-xavg;
transdis = transpose(dis);
y(i,:) = transV*transdis;
end
y1 = y(1:end,1);
y2 = y(1:end,2);
ax2 = subplot(2,2,2);
scatter(ax2,y1,y2);
title('after PCA');
c)对这些样本进行白化变换并保留所有的 2 个维度,使用 scatter 函数画出 PCA 后的样本;
clear all;
x = randn(2000,2)*[2 1;1 2];
x1 = x(1:end,1);
x2 = x(1:end,2);
ax1 = subplot(2,2,1);
scatter(ax1,x1,x2);
title('original');
k = 2;
xavg = mean(x);
xavgt = transpose(xavg);
cov = zeros(2,2);
for i = 1:2000
xtemp = x(i,:);
cov = cov + transpose((xtemp-xavgt))*(xtemp-xavgt);
end
cov = cov/2000;
%V表示的是特征向量 D表示的是特征值
[V,D]=eig(cov);
transV = transpose(V);
y = zeros(2000,2);
for i = 1:2000
xtemp = x(i,:);
dis = xtemp-xavg;
transdis = transpose(dis);
y(i,:) = transV*transdis;
end
y1 = y(1:end,1);
y2 = y(1:end,2);
ax2 = subplot(2,2,2);
scatter(ax2,y1,y2);
title('after PCA');
negradication = D^(-0.5);
white = transpose(V*negradication);
z = zeros(2000,2);
for i = 1:2000
xtemp = x(i,:);
dis = xtemp-xavg;
transdis = transpose(dis);
z(i,:) = white*transdis;
end
z1 = z(1:end,1);
z2 = z(1:end,2);
ax3 = subplot(2,2,3);
scatter(ax3,z1,z2);
axis equal
title('after PCAwhite');
为了方便比对,这三问的结果展示我们在一起给出。下面给出了三次随机生成样本并进行PCA变换和白化变换的结果。
如果在 PCA 变换中保留所有的维度,为什么 PCA 是数据(在进行平移之后) 的一个旋转?这一操作为什么会有用?
如果保留所有维度,那么实际上我们的低维表示就可以写成如下形式
y
=
E
d
T
(
x
−
x
‾
)
=
E
T
(
x
−
x
‾
)
=
E
T
x
−
E
T
x
‾
y = E_d^T(x - \overline{x}) = E^T(x - \overline{x}) = E^Tx - E^T\overline{x}
y=EdT(x−x)=ET(x−x)=ETx−ETx
这实际上就是对每一个样本都做了一个线性变换,所以如果保留所有的维度,实际上PCA就是对原数据进行了一个平移之后的旋转,其中
x
−
x
‾
x - \overline{x}
x−x就是平移的过程,与
E
T
E^T
ET相乘的过程就是旋转的过程。同样地,如果PCA降维我们可以理解成是从高维到低维的投影,那么这里保留所有维度我们就可以理解成从这一维到这一维的投影,那么这个过程实际上就是一个线性变换。
这个过程实际上是一个数据预处理的过程,也就是规范化的过程。在一些实际问题中,我们得到的样本都是多个维度的,很多维度的量纲和数值的数量级都是不一样的,如果直接使用原始数据,那么他们对结果的影响程度将不同,而通过数据规范化的处理,可以使得不同的特征具有相同的尺度。这样,我们在使用其他的算法进行参数学习的时候,不同的特征对参数的影响就一致了。