聚类算法,从案例到入门
聚类分析,简单的说,就是对数据分群,它以相似性为基础,相同类中的样本比不同类中的样本更具相似性。在商业应用中,聚类通常用来划分用户群,然后分别加以研究;另外,它还可以挖掘数据中潜在的模式,基于此改进业务流程或设计新产品等。常见的聚类算法有k-Means算法、系统聚类算法,下面将依次介绍。
k-Means算法
k-Means算法是一种基于划分的经典聚类算法,对于给定的含有N条记录的数据集,算法将把数据集分成k组(k<N),使得每一分组至少包含一条数据记录,每条记录属于且仅属于一个分组。算法首先会给出一个随机初始的分组,再通过反复迭代改变分组,使每一次改进的分组比上一次好,用于衡量好的标准通常是:同一分组中的记录越近越好,而不同分组中的记录越远越好,通常使用欧氏距离作为相异性度量。k-Means实现的基本流程如下图所示。
系统聚类算法
系统聚类法是目前国内外使用比较多的一种聚类方法,它将首先将每个样本单独看成一类,在规定类间距离的条件下,选择距离最小的一对合并成一个新类,并计算新类与其他类之间的距离,再将距离最近的两类合并,这样每次会减少一个类,直到所有的样本合为一类为止。常用的距离包括绝对值距离、欧氏距离、明氏距离、切比雪夫距离、马氏距离、兰氏距离、余弦距离。同时,类间距离也有很多定义方法,主要有:类平均法、可变类平均法、可变法、重心法、中间距离法、最长距离法、最短距离法、离差平方法。