日期:2014-05-16  浏览次数:20516 次

Matlab下用自带函数进行的聚类分析

说明:如果是要用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