其他章节答案请参考我的汇总统计学习方法答案汇总,都是自己写的。
1、试写出分裂聚类算法,自上而下地对数据进行聚类,并给出其算法复杂度。
解:
算法流程大致如下:
输入:数据集T,指定需要划分的簇数k
输出:k个数据集的子集
- 将数据集T中的所有样本作为一个初始簇。
- 在所有的簇中选择直径最大的簇记为 C 0 C_0 C0。
- 计算簇 C 0 C_0 C0中所有的点到其他点的平均距离最大的点 p 0 p_0 p0放在一个新的簇 C n e w C_{new} Cnew中, C 0 C_0 C0中剩余的样本构成的簇记为 C o l d C_{old} Cold
- 然后重复一下过程:对 C o l d C_{old} Cold中的点 x x x,如果 x x x到 C n e w C_{new} Cnew的距离比 x x x 到 C o l d C_{old} Cold中距离 x x x最近的点的距离要小,那么就将点 x x x放在新的簇 C n e w C_{new} Cnew中,除了点 x x x剩下的点还记为 C o l d C_{old} Cold,重复这个过程,直到 C o l d C_{old} Cold中没有点可以放在 C n e w C_{new} Cnew中。
- 如果不满足停止条件,从步骤2开始继续重复。
时间复杂度是 O ( K N 2 M ) O(KN^2M) O(KN2M),其中 K K K是类别数, N N N是数据集样本数, M M M是样本的维度。
2、证明类或者簇的四个定义中,第一个定义可以推出其他的三个定义。
证明:
**第一个定义推第二,三个定义:**由定义一的定义可知,推出第二、三个定义是是显然的。
下面证明第一个定义推出第四个定义:
我们知道
n
G
n_G
nG是
G
G
G中的样本的个数,对G中任意一个样本
x
i
x_i
xi,除了
x
i
x_i
xi还剩下
n
G
−
1
n_G - 1
nG−1个样本。
且有
d
i
j
≤
T
d_{ij}\le T
dij≤T
所以有
1
n
G
n
G
−
1
∑
x
i
∈
G
∑
x
j
∈
G
d
i
j
≤
1
n
G
n
G
−
1
∑
x
i
∈
G
∑
x
j
∈
G
T
≤
T
1
n
G
n
G
−
1
∑
x
i
∈
G
∑
x
j
∈
G
1
≤
T
\frac{1}{n_Gn_G-1}\sum_{x_i \in G}\sum_{x_j \in G}d_{ij} \\ \le \frac{1}{n_Gn_G-1}\sum_{x_i \in G}\sum_{x_j \in G}T \\ \le T \frac{1}{n_Gn_G-1}\sum_{x_i \in G}\sum_{x_j \in G}1 \le T
nGnG−11xi∈G∑xj∈G∑dij≤nGnG−11xi∈G∑xj∈G∑T≤TnGnG−11xi∈G∑xj∈G∑1≤T
3、证明k均值的可能解的个数是指数级的。
证明:
其实这是第二类的斯特林数!!!
感觉书上给的公式是错误的,如下:
S
(
n
,
k
)
=
1
k
!
∑
l
=
1
k
(
−
1
)
k
−
l
(
k
l
)
k
n
S(n,k)=\frac{1}{k!}\sum_{l=1}^{k}(-1)^{k-l}\binom{k}{l}k^{n}
S(n,k)=k!1l=1∑k(−1)k−l(lk)kn
比如取n = 5,k = 3,结果不是整数,这显然是不可能的。
应该将公式改为
S
(
n
,
k
)
=
1
k
!
∑
l
=
1
k
(
−
1
)
k
−
l
(
k
l
)
l
n
S(n,k)=\frac{1}{k!}\sum_{l=1}^{k}(-1)^{k-l}\binom{k}{l}l^{n}
S(n,k)=k!1l=1∑k(−1)k−l(lk)ln
可以采用动态规划的方法给出这个题的递推公式。
设
D
p
[
n
]
[
m
]
Dp[n][m]
Dp[n][m]是指将第n个球放在m个盒子,总的放置方法数
那么
D
p
[
n
]
[
m
]
=
D
p
[
n
−
1
]
[
m
]
+
m
∗
D
p
[
n
−
1
]
[
m
]
Dp[n][m] = Dp[n-1][m]+m*Dp[n-1][m]
Dp[n][m]=Dp[n−1][m]+m∗Dp[n−1][m]
第一部分
D
p
[
n
−
1
]
[
m
]
Dp[n-1][m]
Dp[n−1][m]是指将第n个球放在了一个新的盒子里,此时说明前面的n-1个球已经放在了k-1个盒子里面了。
第二部分
m
∗
D
p
[
n
−
1
]
[
m
]
m*Dp[n-1][m]
m∗Dp[n−1][m]是指前面的n-1个球放在了m个盒子里面,此时由于要求没有空盒子,那么第n个球可以随便放m个盒子的任意一个里面,因而有m*Dp[n-1][m]种放置方法。
其实这是利用了 动态规划 的思想给出了球的放置方法的递推公式,使用生成函数证明该题的方法如下
再在公式(46)中取
l
=
k
−
i
l = k - i
l=k−i进行变量的替换就可以得到书中的公式。
4、比较k均值聚类与高斯混合模型加EM算法的异同。
同:
1、高斯混合模型也可以用于聚类问题。
2、高斯混合模型同样也是有k个子模型构成的,也即混合高斯模型是k个单高斯分布以一定的权重组合的,k的选择同样是一个问题。k均值算法也有这样的缺点,k的选择是一个关键。
3、EM算法的收敛性也是受到初始值的影响,容易“陷入局部极值”,k均值算法同样。
异:
高斯混合模型可以用于概率估计,生成新的样本,并且给出属于某个类的概率,高斯混合模型的应用更加广泛,收敛速度快,能应用到大规模数据上。