李航老师《统计学习方法》第十四章聚类方法课后题答案

人工智能111

其他章节答案请参考我的汇总统计学习方法答案汇总,都是自己写的。

1、试写出分裂聚类算法,自上而下地对数据进行聚类,并给出其算法复杂度。

解:
算法流程大致如下:
输入:数据集T,指定需要划分的簇数k
输出:k个数据集的子集

  1. 将数据集T中的所有样本作为一个初始簇。
  2. 在所有的簇中选择直径最大的簇记为C 0 C_0 C 0 ​。
  3. 计算簇C 0 C_0 C 0 ​中所有的点到其他点的平均距离最大的点p 0 p_0 p 0 ​放在一个新的簇C n e w C_{new}C n e w ​中,C 0 C_0 C 0 ​中剩余的样本构成的簇记为C o l d C_{old}C o l d ​
  4. 然后重复一下过程:对C o l d C_{old}C o l d ​中的点x x x,如果x x x到C n e w C_{new}C n e w ​的距离比x x x 到C o l d C_{old}C o l d ​中距离x x x最近的点的距离要小,那么就将点x x x放在新的簇C n e w C_{new}C n e w ​中,除了点x x x剩下的点还记为C o l d C_{old}C o l d ​,重复这个过程,直到C o l d C_{old}C o l d ​中没有点可以放在C n e w C_{new}C n e w ​中。
  5. 如果不满足停止条件,从步骤2开始继续重复。

时间复杂度是O ( K N 2 M ) O(KN^2M)O (K N 2 M ),其中K K K是类别数,N N N是数据集样本数,M M M是样本的维度。

2、证明类或者簇的四个定义中,第一个定义可以推出其他的三个定义。

证明:

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长