聚类分析用于对未知类别的样本进行划分,将它们按照一定的规则划分成若干个类族,把相似(距高相近)的样本聚在同一个类簇中, 把不相似的样本分为不同类簇,从而揭示样本之间内在的性质以及相互之间的联系规律
聚类算法将未标记的样本自动划分为多个类簇,但不会提供对每个类簇的语义解释,这部分解释就需要数据分析人员对聚类结果进行归纳总结,阐述聚类的意义。
金融保险、生物学、医学、军事、地理、电子商务等领域都有重要用途。
基于划分的聚类,多适用于中等体量的数据集,数据集越大,越有可能陷入局部最小。基于层次的聚类有自顶向下和自底向上两种,实际使用中根据数据特点及目标“聚类”结果个数来使用哪一种。基于密度的聚类对噪声数据的处理比较好,但不适合对参数设置非常敏感的场合基于网格的聚类适用于需要执行效率高,而对参数不敏感、无不规则分布的数据等场合。基于模型的聚类适用于数据的“类”不那么确定,而表现为概率形式的场合。
良好的可伸缩性、处理不同类型数据的能力、处理噪声数据的能力、对样本顺序的不敏感性、约束条件下的表现、易解释性和易用性。
具体评价指标包括外部指标如Rand统计量、F值、Jaccard指数、FM指数等;内部指标如欧式距离、曼哈顿距离、切比雪夫距离、明科夫斯基距离、紧密度、分隔度、戴维森堡丁指数、邓恩指数等。
常用的距离度量有欧式距离、曼哈顿距离、切比雪夫距离和明可夫斯基距离等。
基于划分的方法通过将对象划分为互斥的簇进行聚类, 每个对象属于且仅属于一个簇。划分结果旨在使簇之间的相似性低,簇内部的相似度高。
第一种方法:与层次聚类算法结合,先通过层次聚类算法得出大致的聚类数目,并且获得一个初始聚类结果,然后再通过k-均值算法改进聚类结果
第二种方法:基于系统演化的方法,将数据集视为伪热力学系统,在分裂和合并过程中,将系统演化到稳定平衡状态从而确定k值
K-means算法对初始化聚类中心依赖性比较大,很可能陷入局部最优的情况或使得迭代次数增加
类似课本“利用改进的k-均值算法帮助危险品运输企业进行风险管控、防范”的案例进行案例说明即可。
k -medoids算法不通过计算簇中所有样本的平均值得到簇的中心,而是通过选取原有样本中的样本点作为代表对象代表这个簇,计算剩下的样本点与代表对象的距离,将样本点划分到与其距离最近的代表对象所在的簇中。
k-prototype算法综合了k-均值和k-总数算法,采用新的距离度量算法,加入了描述数据簇的原型和混合数据之间的相异度计算公式,能够快速处理混合类型数据集的聚类问题。
CLARANS算法即随机搜索聚类算法,是一种分割聚类方法。它首先随机选择一个点作为当前点,然后随机检查它周围不超过参数Maxneighbor个的一些邻接点,假如找到一个比它更好的邻接点,则把它移人该邻接点,否则把该点作为局部最小量。然后再随机选择一个点来寻找另一个局部最小量,直至所找到的局部最小量数目达到用户要求为止。该算法要求聚类的对象必须都预先调人内存,并且需多次扫描数据集,这对大数据量而言,无论时间复杂度还是空间复杂度 都相当大。虽通过引人R-树结构对其性能进行改善,使之能够处理基于磁盘的大型数据库,但R*-树的构造和维护代价太大。该算法对脏数据和异常数据不敏 感,但对数据物人顺序异常敏感,且只能处理凸形或球形边界聚类。
Eps的值可以使用绘制k-距离曲线方法得当,在k-距离曲线图明显拐点位置为对应较好的参数。若参数设置过小,大部分数据不能聚类;若参数设置过大,多个簇和大部分对象会归并到同一个簇中。
MinPts的选取有一个指导性的原则,MinPts≥dim+1,其中dim表示待聚类数据的维度。MinPts设置为1是不合理的,因为设置为1,则每个独立点都是一个簇,MinPts≤2时,与层次距离最近邻域结果相同,因此,MinPts必须选择大于等于3的值。若该值选取过小,则稀疏簇中结果由于密度小于MinPts,从而被认为是边界点儿不被用于在类的进一步扩展;若该值过大,则密度较大的两个邻近簇可能被合并为同一簇。因此,该值是否设置适当会对聚类结果造成较大影响。
结合算法特点和具体应用说明即可。参考课本案例4.4“通过DBSCAN聚类分析城市异常事件”。
OPTICS算法生成一个增广的簇排序,即所有分析对象的线性表,代表各样本点基于密度聚类结构。从线性表的排序中可以得到基于任何领域参数的DBSCAN算法的聚类结果。OPTICS算法适用于数据样本点不均匀或聚类间相差很大,以及对领域参数非常敏感时。
层次聚类的核心思想就是通过对数据集按照层次,把数据划分到不同层的簇,从而形成一个树形的聚类结构。层次聚类算法可以揭示数据的分层结构,在树形结构上不同层次进行划分,可以得到不同粒度的聚类结果。
BIRCH算法的核心就是构建一个聚类特征树(Clustering Feature Tree,CF-Tree),聚类特征树的每一个节点都是由若干个聚类特征(??)组成的。具体言之,BIRCH算法利用树结构对数据集进行处理,叶结点存储一个聚类,用中心和半径表示,顺序处理每一个对象,并把它划分到距离最近的结点,该算法也可以作为其他聚类算法的预处理过程。
CURE算法采用抽样技术先对数据集D随机抽取样本,再采用分区技术对样本进行分区,然后对每个分区局部聚类,最后对局部聚类进行全局聚类。
ROCK算法也采用了随机抽样技术,该算法在计算两个对象的相似度时,同时考虑了周围对象的影响。
CHEMALOEN(变色龙算法)算法首先由数据集构造成一个K-最近邻图Gk ,再通过一个图的划分算法将图Gk 划分成大量的子图,每个子图代表一个初始子簇,最后用一个凝聚的层次聚类算法反复合并子簇,找到真正的结果簇。
SBAC算法则在计算对象间相似度时,考虑了属性特征对于体现对象本质的重要程度,对于更能体现对象本质的属性赋予较高的权值
凝聚的层次聚类并没有类似基本K均值的全局目标函数,没有局部极小问题或是很难选择初始点的问题。合并的操作往往是最终的,一旦合并两个簇之后就不会撤销。当然其计算存储的代价是昂贵的。
Kohonen聚类算法的基本思想是基于赢者通吃法则(也称为竞争学习),使获胜神经元对其邻近神经元的影响是由近及远,对附近神经元产生兴奋影响逐渐变为抑制。通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。参考课本例4.9结合案例进行应用分析即可。
参考课本例4.10“基于聚类和时间序列的易腐商品分级需求预测”案例结合具体应用进行分析即可。