聚类分析的一个典型案例

对变量进行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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学习不好的电气仔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值