一、聚类
聚类能够发现无标记训练样本的内在规律、联系。在聚类学习算法中,“距离” 的定义是十分重要的。
在针对非数值数据时,对距离的定义也在包含了人们主观上的分类思想,也会对学习结果产生影响。假设对以下数据进行分类,那么应当如何定义“距离”的概念呢?
样例名称 | 形状 | 尺寸 | 用途 | 销量 |
---|---|---|---|---|
橄榄球 | 椭球 | 大 | 运动 | 低 |
西瓜 | 椭球 | 大 | 食用 | 高 |
乒乓球 | 球 | 小 | 运动 | 低 |
假设我们期望橄榄球与乒乓球分为一类,那么在距离计算的过程中就需要增加“用途”、“销量”两个属性的权重,这就包含了我们的主观认知。当然,距离度量的定义,也可以通过度量学习获得。
二、K均值算法结果分析
为了加深对本章节的理解,我试着编程实现习题9.4代码,并将运行结果进行分析。对于连续属性(密度、含糖率),可以用欧式距离进行距离度量,距离该距离度量的运行结果如下:
(“+”代表均值点;黑点代表簇内部数据点;彩色点代表簇边界数据点,不同颜色代表不同簇)
1、K=3时:
上面列出了K=3时,运行出的部分结果。从以上结果可知,在K=3时,K均值算法能够快速收敛。但是由于初始均值点是从数据点中随机选择的,这种选择的随机性对学习结果产生了影响。因此,可以了解到,K均值算法的学习结果,与初始均值点的选择有关。
2、K=6时:
上面列举了2种可能的运行结果。经过多次运行,可以得知,虽然在K=6时仍有许多可能的运行结果,但是运行结果间的差异正逐渐变小,运行结果的可能种类也变少。因此,可以了解到,K(均值点的数量)会对学习结果的稳定性产生影响。
3、K=样本数量时: