• 聚类分析、matlab\我国各地区普通高等教育发展状况分析、Q型、R型聚类


    image.png

    • 聚类分析又称为群分析,是对多个样本(或指标)进行定量分类的一种多元统计分析方法。对样本进行分类称为Q型聚类分析,对指标进行分类称为R型聚类分析。
    • 本文讲解层次聚类(谱系聚类)

    Q型聚类分析

    样本的相似性度量

    1. 闵氏(Minkowski)距离

    d q ( x , y ) = [ ∑ k = 1 p ∣ x k − y k ∣ q ] 1 q d_q(x,y)=[\sum_{k=1}^p|x_k-y_k|^q]^{\frac{1}{q}} dq(x,y)=[k=1pxkykq]q1

    1. q = 1 q=1 q=1,绝对值距离

    d 1 ( x , y ) = ∑ k = 1 p ∣ x k − y k ∣ d_1(x,y)=\sum_{k=1}^p|x_k-y_k| d1(x,y)=k=1pxkyk

    1. q = 2 q=2 q=2,欧几里得距离

    d 2 ( x , y ) = [ ∑ k = 1 p ∣ x k − y k ∣ 2 ] 1 2 d_2(x,y)=[\sum_{k=1}^p|x_k-y_k|^2]^{\frac{1}{2}} d2(x,y)=[k=1pxkyk2]21

    1. q = ∞ q=\infty q=,切比雪夫距离

    d ∞ ( x , y ) = max ⁡ 1 ≤ k ≤ p ∣ x k − y k ∣ d_{\infty}(x,y)=\max_{1\le k\le p}|x_k-y_k| d(x,y)=1kpmaxxkyk

    1. 马氏(Mahalanobis)距离

    d ( x , y ) = ( x − y ) T Σ − 1 ( x − y ) d(x,y)=\sqrt{(x-y)^T\Sigma^{-1}(x-y)} d(x,y)=(xy)TΣ1(xy)
    x x x, y y y来自 p p p维总体 Z Z Z的样本观测值; Σ \Sigma Σ Z Z Z的协方差矩阵,实际中 Σ \Sigma Σ往往是位置的,常常需要用样本协方差矩阵来估计。

    1. 此外还有样本相关系数、夹角余弦和其它关联性度量作为相似性度量

    类与类间的相似性度量

    1. 最短距离法

    D ( G 1 , G 2 ) = min ⁡ x i ∈ G 1 y j ∈ G 2 { d ( x i , y j ) } D(G_1,G_2)=\min_{\substack{x_i\in G_1 \\ y_j\in G_2}}\{d(x_i,y_j)\} D(G1,G2)=xiG1yjG2min{d(xi,yj)}

    1. 最长距离法

    D ( G 1 , G 2 ) = max ⁡ x i ∈ G 1 y j ∈ G 2 { d ( x i , y j ) } D(G_1,G_2)=\max_{\substack{x_i\in G_1 \\ y_j\in G_2}}\{d(x_i,y_j)\} D(G1,G2)=xiG1yjG2max{d(xi,yj)}

    1. 重心法

    D ( G 1 , G 2 ) = d ( x ˉ , y ˉ ) D(G_1,G_2)=d(\bar x,\bar y) D(G1,G2)=d(xˉ,yˉ)
    x ˉ \bar x xˉ y ˉ \bar y yˉ分别为 G 1 G_1 G1 G 2 G_2 G2的重心。

    1. 类平均法

    D ( G 1 , G 2 ) = 1 n 1 n 2 ∑ i ∈ G 1 ∑ y j ∈ G 2 d ( x i , y j ) D(G_1,G_2)=\frac{1}{n_1n_2}\sum_{_i\in G_1}\sum_{y_j\in G_2}d(x_i,y_j) D(G1,G2)=n1n21iG1yjG2d(xi,yj)

    1. 离差平方和法(Ward法)

    D 1 = ∑ x i ∈ G 1 ( x i − x ˉ ) T ( x i − x ˉ ) D_1=\sum_{x_i\in G_1}(x_i-\bar{x})^T(x_i-\bar x) D1=xiG1(xixˉ)T(xixˉ)
    D 2 = ∑ y j ∈ G 2 ( y j − y ˉ ) T ( y j − y ˉ ) D_2=\sum_{y_j\in G_2}(y_j-\bar y)^T(y_j-\bar y) D2=yjG2(yjyˉ)T(yjyˉ)
    D 12 = ∑ z k ∈ G 1 ∪ G 2 ( z k − z ˉ ) T ( z k − z ˉ ) D_{12}=\sum_{z_k\in{G_1\cup G_2}}(z_k-\bar z)^T(z_k-\bar z) D12=zkG1G2(zkzˉ)T(zkzˉ)
    x ˉ \bar x xˉ y ˉ \bar y yˉ z ˉ \bar z zˉ分别为 G 1 G_1 G1 G 2 G_2 G2 G 1 ∪ G 2 G_1\cup G_2 G1G2的重心。
    D ( G 1 , G 2 ) = D 12 − D 1 − D 2 D(G_1,G_2)=D_{12}-D_1-D_2 D(G1,G2)=D12D1D2

    系统(层次)聚类流程

    1. 将每个对象看成一类,计算两两之间的距离(距离矩阵)
    2. 将距离最小的两个类合并成新类
    3. 重新计算新类与所有类之间的距离
    4. 重复2 3步,知道所有类最后合并成一类

    R型聚类分析

    • 按照变量的相似关系把它们聚合成若干类,进而找出影响系统的主要因素

    变量相似性度量

    1. 相关系数:用变量 x j x_j xj( x 1 j , x 2 j , . . . , x n j x_{1j},x_{2j},...,x_{nj} x1j,x2j,...,xnj)与 x k x_k xk的样本相关系数 r j k r_{jk} rjk作为它们的相似性度量

    r j k = ∑ i = 1 n ( x i j − x j ˉ ) ( x i k − x k ˉ ) [ ∑ i = 1 n ( x i j − x j ˉ ) 2 ∑ i = 1 n ( x i k − x k ˉ ) 2 ] 1 2 r_{jk}=\frac{\sum_{i=1}^n(x_{ij}-\bar{x_j})(x_{ik}-\bar{x_k})}{[\sum_{i=1}^n(x_{ij}-\bar{x_j})^2\sum_{i=1}^n(x_{ik}-\bar{x_k})^2]^{\frac{1}{2}}} rjk=[i=1n(xijxjˉ)2i=1n(xikxkˉ)2]21i=1n(xijxjˉ)(xikxkˉ)

    1. 夹角余弦:

    r j k = ∑ i = 1 n x i j x i k ( ∑ i = 1 n x i j 2 ∑ i = 1 n x i k 2 ) 1 2 r_{jk}=\frac{\sum_{i=1}^nx_{ij}x_{ik}}{(\sum_{i=1}^nx_{ij}^2\sum_{i=1}^nx_{ik}^2)^{\frac{1}{2}}} rjk=(i=1nxij2i=1nxik2)21i=1nxijxik

    两类变量的距离

    1. 最长距离法

    R ( G 1 , G 2 ) = max ⁡ x j ∈ G 1 x k ∈ G 2 { d j k } R(G_1,G_2)=\max_{\substack{x_j\in G_1 \\ x_k\in G_2}}\{d_{jk}\} R(G1,G2)=xjG1xkG2max{djk}
    d j k = 1 − ∣ r j k ∣ d_{jk}=1-|r_{jk}| djk=1rjk d j k 2 = 1 − ∣ r j k ∣ 2 d_{jk}^2=1-|r_{jk}|^2 djk2=1rjk2

    变量聚类

    • 变量聚类和层次聚类思路和过程是一样的

    聚类分析案例——我国各地区普通高等教育发展状况分析

    x 1 x_1 x1为每百万人口高等院校数; x 2 x_2 x2为 每十万人口高等院校毕业生数; x 3 x_3 x3为每十万人口高等院校招生数; x 4 x_4 x4为每十万人口高 等院校在校生数; x 5 x_5 x5为每十万人口高等院校教职工数; x 6 x_6 x6为每十万人口高等院校专职 教师数; x 7 x_7 x7 为高级职称占专职教师的比例; x 8 x_8 x8 为平均每所高等院校的在校生数; x 9 x_9 x9为 国家财政预算内普通高教经费占国内生产总值的比重; x 10 x_{10} x10 为生均教育经费 。
    部分数据如下表所示:
    image.png
    先对变量进行聚类选出指标,再对样本进行聚类。

    clc;clear
    a=load('gj.txt');
    b=zscore(a); %数据标准化
    
    %% R型聚类
    r=corrcoef(b);%计算相关系数
    d=tril(1-abs(r));%根据相关系数计算距离,并取矩阵的下三角部分
    d=nonzeros(d)'; %取出非零数据形成一个向量
    
    %或者直接使用这种方法求距离向量
    %d=pdist(b','correlation'); %b需要转置是因为在R型聚类中,b的每一列是一个样本,而pdist需要的是每一行是一个样本
    z=linkage(d,'average');%按类平均法聚类
    figure()
    h=dendrogram(z);
    set(h,'Color','k','LineWidth',1.3)
    T=cluster(z,'maxclust',6);
    
    %可以将求距离pdist,聚类过程linkage,聚类结果cluster 合并为一个函数
    %hidx=clusterdata(data,'maxclust',numClust,'distance',dist_h,'linkage',link);
    %T=clusterdata(b','maxclust',6,'distance','correlation','linkage','average');
    
    for i=1:6
      tm=find(T==i);  %求第i类的对象
      tm=reshape(tm,1,length(tm)); %变成行向量
      fprintf('第%d类的有%s\n',i,int2str(tm)); %显示分类结果
    end
    %根据聚类结果选择2(在第2类中,2是最后被聚类的) 1 9 7 8 10六个指标
    
    %% Q型聚类
    %根据这6个指标对30个地区进行聚类
    b_=b(:,[1:2,7:10]);
    y=pdist(b_);%求对象间的欧式距离(默认),y的结果是行向量,squareform(y)可转成距离矩阵
    z=linkage(y,'average');
    figure()
    h=dendrogram(z);
    set(h,'Color','k','LineWidth',1.3)
    
    %% 用sse画肘部图
    sse=[];
    for k=2:5
      T=cluster(z,'maxclust',k);
      s=zeros(1,k);
      for i=1:k
        tm = find(T==i);%第i类有哪些地区
        mean_=mean(b_(tm,:),1);
        for j=1:length(tm)
          s(i)=s(i)+sum((b_(tm(j),:)-mean_).^2);
        end
       end
      sse=[sse,sum(s)];
    %fprintf('分为%d类时的sse=%f\n',k,sum(s));
    end
    figure()
    plot(2:5,sse,'*-')
    
    % 设分为K个类别
    K=4;
    for i=1:K
      tm=find(T==i);  %求第i类的对象
      tm=reshape(tm,1,length(tm)); %变成行向量
      fprintf('第%d类的有%s\n',i,int2str(tm)); %显示分类结果
    end
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    image.png
    image.png
    image.png

  • 相关阅读:
    Cocoa Application-基础
    如何写一个中间件的springboot的starter?
    第二章 C API稳定性
    LNMP架构概述及相关服务的搭建
    Qt MinGW / MSVC
    【计算机毕业设计】70.毕业设计管理系统源码
    2022-11-19 关于代码设计的思考
    Symbol
    大数据分析&数据仓库关于数据库选型方面的感触
    ffmpeg云服务器推流
  • 原文地址:https://blog.csdn.net/weixin_45775970/article/details/126245143