说明:如果是要用matlab做kmeans聚类分析,直接使用函数kmeans即可。使用方法:kmeans(输入矩阵,分类个数k)。
?
转载一:
MATLAB提供了两种方法进行聚类分析:
1、利用?clusterdata?函数对数据样本进行一次聚类,这个方法简洁方便,其特点是使用范围较窄,不能由用户根据自身需要来设定参数,更改距离计算方法;
2、分步聚类:(?1)用?pdist函数计算变量之间的距离,找到数据集合中两辆变量之间的相似性和非相似性;(2)用?linkage函数定义变量之间的连接;(?3)用?cophenetic函数评价聚类信息;(?4)用?cluster函数进行聚类。
下边详细介绍两种方法:
1、一次聚类
Clusterdata函数可以视为?pdist、?linkage与?cluster的综合,一般比较简单。
【?clusterdata函数:
调用格式:?T=clusterdata(X,cutoff)?????
???????????????????? ?等价于Y=pdist(X,’euclid’); Z=linkage(Y,’single’); T=cluster(Z,cutoff)??】
2、分步聚类
(?1)求出变量之间的相似性
用?pdist函数计算出相似矩阵,有多种方法可以求距离,若此前数据还未无量纲化,则可用?zscore函数对其标准化
【?pdist函数:?调用格式:?Y=pdist(X,’metric’)
?说明:?X是?M*N矩阵,为由?M个样本组成,每个样本有?N个字段的数据集
????????metirc取值为:’?euclidean’:欧氏距离(默认)?‘seuclidean’:标准化欧氏距离;?‘mahalanobis’:马氏距离…?】
pdist生成一个?M*(M-1)/2个元素的行向量,分别表示?M