Programming Collective Intelligence 读书笔记之 Data clustering

第三章讲述了Data clustering 的相关知识,即如何进行数据聚类。首先数据聚类是为了寻找密切相关的人,事,观点等,并将他们可视化。在数据量巨大的应用中,通过相关方法找到相似度很高的群组,并针对其进行下一步操作,例如市场营销,推荐策略等是数据聚类相关的应用价值

Supervised Learning, 监督学习,这是一类利用已有的样本的输入输出来预判接下来的输入相对应的输出的学习方法。Neural networks神经网络, decision trees决策树, support-vector machines向量支持机 and Bayesian filtering贝叶斯过滤 属于监督学习。Unsupervised learning, 无监督学习,这类学习方法并不会有一系列的正确样本进行训练,而是通过给一组数据找到一种数据结构来确认他们之间的相关性。聚类算法就是无监督学习的一种,他的目标是采集数据并在数据中找出不同的群组。

Hierarchical Clustering, 分级聚类,以每个单一元素作为群组的起点,每一级的迭代都会计算两两群组的距离并将距离最近的群组合并为一个新的群组直至只剩一个群组。距离的表示方法和计算体系已经在上一章中提及过,书中的流程图:


P3.PNG

这个结果图最后可以转换为一张树图,依旧是书中的图片:


P4.PNG

树状图可以帮助我们判断聚类的紧密度。

K-Means Clustering, 树状图作为结果有些缺点,第一是计算量巨大,每一级都需要两两计算距离,第二是最后的树状结果并没有把所有的数据放进独立的群组中,还需要额外的工作来完成这一步。所以引入了K-Means 聚类,他与分级聚类的一大区别是我们需要预先告知算法我们要多少个群组,然后算法来计算每个群组的体量。具体的操作方式为首先随机选择K个中心点, K就是我们预先给出的聚类数量,然后把所有的数据项分配给最近的中心点,接下来移动中心点的位置到他所属的数据项的平衡位置。然后再次分配再次移动,直到分配和移动结果全都稳定不变。书中给出了一个两点五数据的例子:


P5.PNG

下一小节提到了如何将数据在二维平面上显示出来,具体的方法为multidimensional scaling, 即多维缩放。例子中首先计算了数据两两间的皮尔逊系数,然后将所有的数据以点的方式随机放置在二维平面上并计算出两两间的距离,这个时候标准距离,即皮尔逊系数和实际距离之间存在误差,那么这个时候点的位置就应该移动以缩小误差,而每个点都会因为其他点的移动影响他的移动,每次移动的目标都是将总误差越降越小,直到这个误差降到不能再降, 从而得到一张完整的表示各个数据相似程度的二维平面图

你可能感兴趣的:(Programming Collective Intelligence 读书笔记之 Data clustering)