聚类分析算法
信息与计算科学专业实验报告
1.实验目的:
用数据挖掘聚类算法(Q型聚类、R型聚类)求分类微博数据。
2.实验环境:
MATLAB 7.0。
Win dows 7 操作系统。
3.实验内容
由于数据集比较大,数据TXT文件不引入报告中。命名为julei.txt 相关两个源文件代码文件如下:
1、Untitled.m
clc,clear
load julei.txt %把原始数据保存在纯文本文件julei.txt 中
r=corrcoef(julei); %计算相关系数矩阵
d=1-r; %进行数据变换,把相关系数转化为距离
d=tril(d); %取出矩阵d的下三角元素
d=non zeros(d); %取出非零元素
d=d'; %化成行向量
z=li nkage(d,'average'); % 按类平均法聚类
den drogram(z); % 画聚类图
T=cluster(z,'maxclust',4) %把变量划分成4 类
for i=1:4
tm=find(T==i); %求第i类的对象
tm=reshape(tm,1,le ngth(tm)); % 变成行向量
fprintf('第%d 类的有%s \n',i,int2str(tm));%显示分类结果end
r %显示相关系数矩阵
2、Untitled2.m
clc,clear
load julei.txt %把原始数据保存在纯文本文件julei.txt中julei(:,5)=[]; %删除数据矩阵的第5列,即使用变量1,2,3,4 julei=zscore( julei); % 数据标准化
y=pdist( julei); %求对象间的欧氏距离,每行是一个对象
z=li nkage(y,'average'); % 按类平均法聚类
den drogram(z); % 画聚类图
for k=2:8
fprintf('划分成%d类的结果如下:\n',k)
T=cluster(z,'maxclust',k); % 把样本点划分成k 类
for i=1:k
tm=find(T==i); %求第i类的对象
tm=reshape(tm,1,le ngth(tm)); % 变成行向量
fprintf('第%d 类的有%s \n',i,int2str(tm)); %显示分类结果end if k==8
break
end
End fprintf('*
********** *\n')
输出结果为: