数学建模——聚类

目录

Q型聚类

R型聚类

其他


Q型聚类

对样本进行分类称为Q型聚类分析,用距离来度量样本点之间的相似程度,两组样本点之间的距离常用欧氏距离进行度量,注意如果量纲不一样,则要进行标准化处理。马氏距离则不需要考虑量纲。两个样本类之间的距离也有定义

mandist(矩阵)该函数用于求矩阵向量之间的两两绝对值距离

Y=pdist(X) 返回 X 中行与行观测值之间的欧几里德距离。返回值Y是一个行向量,用squareform(Y)转换为方阵,行向量Y其实就是矩阵形式的下三角矩阵的值。

tril(矩阵)可以截取下三角矩阵,nonzeros(矩阵)去除矩阵中零元素,非零元素按列排列,unique(矩阵)可以去掉重复的非零元素,linkage()函数可以求聚类树,参数应该是距离的行向量,dendrogram(z,num);画聚类图,num是节点数,默认最多30

 例子:

w1 1 0
w2 1 1
w3 3 2
w4
w5 2 4

对w进行分类

采用绝对值距离为分类依据,理论分析得出距离:

数学建模——聚类_第1张图片

 画出聚类图和二叉树图:

数学建模——聚类_第2张图片

clc,clear
a = [1,0;1,1;3,2;4,3;2,5];
d = pdist(a,'cityblock');%计算样本点直接两两距离行向量
z = linkage(d);
dendrogram(z);%画出聚类图
T = cluster(z,'maxclust',3)%将分类分为三类
%% 也可以:
z = linkage(a,'single','cityblock');%single指类间距离,后者是样本点距离

 运算结果:

z =

     1     2     1
     3     4     2
     6     7     3
     5     8     4

意思是:1,2样本点划分为一类,是h6,3,4划分一类h7,h6、h7划分一类为h8,h8和样本点5划分一类。z第三列包含了两两行对象间连接距离

T =

     1
     1
     2
     2
     3

T划分为三类,样本点1,2分为1类...

数学建模——聚类_第3张图片

数学建模——聚类_第4张图片

R型聚类

对变量聚类,进而可以找出影响系统的主要因素,常用的变量相似性度量有两种①相关系数②夹角余弦,采用相关系数是最多的

数学建模——聚类_第5张图片

 变量聚类法常用的有最长距离法和最短距离法

例子:

给出14个变量之间的相关系数,对这14个变量进行分类

数学建模——聚类_第6张图片

clc,clear
a = readmatrix('data.txt');
a(isnan(a)) = 0;
d = 1-abs(a);               %进行数据变换,把相关系数转化为距离
d = tril(d);                %提出下三角矩阵
b = nonzeros(d);            %除去0
b = b';                     %化为行向量
z = linkage(b,'complete');  %按最长距离法聚类
y = cluster(z,'maxclust',2);%把变量划分为2类
ind1 = find(y==1)           %显示第一类对应的变量标号
ind2 = find(y==2)
h = dendrogram(z);          %画出聚类图

其他

A = zsore(x)对数据矩阵进行标准化处理,处理的方式为:

B = corrcoef(A) 返回 A 的相关系数的矩阵

你可能感兴趣的:(数学建模,机器学习,人工智能)