数学建模--聚类分析

这篇good!

系统聚类(少)


数学建模--聚类分析_第1张图片
数学建模--聚类分析_第2张图片
类与类之间有
最短距离min{d(xi,yj)}
最长距离max{d(xi,yj)}
重心法。。。

数学建模--聚类分析_第3张图片

  1. 样本间距离
  2. 每类一个样本点且平台高度为0
  3. 合并距离近的为新类,两类距离值为平台高度
  4. 直到只有1类
  5. 画图
    代码:
clc,clear
a=[1 0;1 1;3 2;4 3;2 5]; %观测数据矩阵
y=pdist(a,'CityBlock'); %使用指定距离算法生成y向量
yc=squareform(y); %将前一个步骤的y向量转换为方阵,使得矩阵中的元素(i,j)对应原始数据集中对象i和j间的距离
z=linkage(y); %使用最短距离算法生成具有层次结构的聚类树
[h,t]=dendrogram(z);

相关matlab
相关代码简单版本
上面的也叫Q形下面的叫R形
数学建模--聚类分析_第4张图片

变量聚类

先对变量进行分类
对于最长最短距离法的本质相同但距离的算法有区别

题目看书p224
数学建模--聚类分析_第5张图片

数学建模--聚类分析_第6张图片

%把下三角相关系数矩阵粘贴到纯文本文件ch.txt中 
a=textread('ch.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' 

load gj.txt   %把原始数据保存在纯文本文件 gj.txt 中 
r=corrcoef(gj);  %计算相关系数矩阵 
d=tril(r);       %取出相关系数矩阵的下三角元素 
for i=1:10       %对角线元素化成零     
    d(i,i)=0; 
end 
d=d(:); 
d=nonzeros(d);  %取出非零元素 
d=d';d=1-d; 
z=linkage(d)   
dendrogram(z) 

load gj.txt   %把原始数据保存在纯文本文件gj.txt中 
gj(:,3:6)=[];
gj=zscore(gj); 
y=pdist(gj); 
z=linkage(y)   
dendrogram(z,'average') 

你可能感兴趣的:(数学建模--聚类分析)