12 聚类分析

本文介绍了聚类分析的基本概念及其在多个领域的应用,重点讲解了MATLAB中两种常见的聚类方法:K均值聚类和模糊C均值聚类。详细阐述了两种方法的原理、MATLAB实现函数及其参数,并通过实例展示了如何进行聚类分析以及评估聚类结果。此外,还讨论了聚类结果的不确定性,提示了聚类结果可能因初始条件不同而略有变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

物以类聚,人以群分,在现实世界中存在着大量的分类问题,聚类分析是研究分类问题的一种多元统计方法,在生物学、经济学、人口学、生态学、电子商务等很多方面有着非常广泛的应用。

更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016

  聚类分析的目的是把分类对象按一定的规则分成若干类,这些类不是事先给定的,而是根据数据的特征确定的,对类的数目和类的结构不必做任何假定。同一类里面的这些对象在某种意义上倾向于彼此相似,而在不同类例的对象倾向于不相似。

 这里主要介绍K均值聚类和模糊C聚类

1.K均值聚类

 K均值聚类有称为快速聚类法,是由麦奎因在1967年提出来的一种聚类方法,其基本步骤为:

 第一:选择k个样品作为初始凝聚点(聚类种子),或者将所有样本分成k个初始类,然后将k个类的重心(均值)作为初始凝聚点。

 第二:对除凝聚点之外的所有样本逐个归类,将每个样品归入离他最近的凝聚点所在的类,该类的凝聚点更新为这一类目前的均值,直至所有样品都归了类。

 第三:重复步骤二,直至所有的样本都不能再分配为止。

 注意:K均值聚类的最终聚类结果在一定程度上依赖于初始聚类点或初始分类的选择

1.1 K均值聚类的MATLAB函数

 与K均值聚类法相关函数有:kmeans和silhouette

 (1)kmeans函数

  kmeans函数用来做K均值聚类,将n个点(或观测)分为k类。聚类过程是动态的,通过迭代使得每个点与所属类重心距离的和达到最小。默认情况下,kmeans采用平方欧式聚类。调用格式如下:

 <1>IDX=kmeans(X,k)

  将n个点(或观测)分为k类,输入参数X为nxp的矩阵,矩阵的每一行对应一个点,每一列对应一个变量。输出参数IDX是一个nx1的向量,其元素为每个点所属类的类序号。

 <2>[IDX,C]=kmeans(X,k)

  返回k个类的重心坐标矩阵C,C是一个kxp的矩阵,第i行元素为第i类的类重心坐标。

<3>[IDX,C,sumd]=kmeans(X,k)

 返回类内距离(即类内各点与类重心距离之和)向量sumd,sumd是一个1xk的向量,第i个元素为第i类的类内距离之和。

<4>[IDX,C,sumd,D]=kmeans(X,k)

 返回每个点与每个类重心之间的距离矩阵D,D是一个nxk的矩阵,第i行第j列的元素是第i个点与第j类的重心之间的距离

<5>[.......]=kmeans(...,param1,val1,param2,val2,....)

 允许用户设置更多的参数及参数值,用来控制kmeans函数所用的迭代算法。param1,param2,...,为参数名,val1,val2,...,为相应的参数值,可用的参数名与参数值如下表:

参数名

参数值

说明

 

 

‘distance’

‘sqEuclidean’

平方欧式距离(默认情况)

‘cityblock’

绝对值距离

‘cosine’

把每个点作为一个向量,两点距离为1减去两个向量夹角余弦

‘correlation’

把每个点作为一个数值序列,两点间距离为1减去两个数值序列的相关系数

‘Hamming’

即不一致字节所占的百分比,仅适用于二进制数据

 

‘emptyaction’

‘error’

把空类作为错误对待(默认情况)

‘drop’

去除空类,输出参数C和D中相应值用NaN表示

‘singleton’

生成一个只包含最远点的新类

‘onlinephase’

 

‘on’

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术提高效率

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值