当前位置: 代码网 > it编程>编程语言>C/C++ > 聚类分析的一个典型案例

聚类分析的一个典型案例

2024年07月28日 C/C++ 我要评论
聚类分析的一个典型案例

对变量进行r型聚类,对样本进行q型聚类。

主程序:

% 将指标看成变量,进行r型聚类

load edu.txt

data = edu;

r = corrcoef(data); % 计算相关系数矩阵

[m, n] = size(data); % m为样本个数,n为指标个数

d = tril(r); % 取出下三角元素

for i = 1:n

d(i,i) = 0;

end

d = d(:);

d = nonzeros(d); % 取出非零元素

d = d';

d = 1 -d;

z = linkage(d)

dendrogram(z)

% 根据需要,从n项指标中挑选几个进行下一轮的分析

% 假设选取6项指标,接下来对m个样本进行q型聚类

data(:,3:6) = []; % 由于选取的指标是第1,2,7,8,9,10项,故删除中间无用信息

data = zscore(data);

y = pdist(data);

z = linkage(y)

dendrogram(z, 'average')

子程序1:system_cluster

系统聚类法

clc, clear

a = [1 0;

1 1;

3 2;

4 3;

2 5];

[m, n] = size(a);

y = pdist(a, 'cityblock'); % 将a看成m个大小为n的向量,生成包含距离信息的向量

yc = squareform(y) % 将距离向量转换为矩阵

z = linkage(y) % 使用最短距离法生成聚类树

[h, t] = dendrogram(z)

子程序2:var_cluster

变量聚类法

clc, clear

a = textread('data.txt');

for i = 1:14

a(i,i) = 0;

end

b = a(:); b = nonzeros(b);

b = b'; b = 1 - b;

z = linkage(b, 'complete');

y = cluster(z, 2);

dendrogram(z);

ind1 = find(y==2); ind1 = ind1'

ind2 = find(y==1); ind2 = ind2'

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com