zoukankan      html  css  js  c++  java
  • 多元统计分析-聚类分析

    聚类分析是一个迭代的过程

    对于n个p维数据,我们最开始将他们分为n组

    每次迭代将距离最近的两组合并成一组

    若给出需要聚成k类,则迭代到k类是,停止

    计算初始情况的距离矩阵一般用马氏距离或欧式距离

    个人认为考试只考 1,2

    比较有用的方法是3,4,5,8 

    最喜欢第8种

    距离的计算

      欧式距离

        距离的二范数

      马氏距离

        对于X1, X2  均属于N(u, Σ) 

        X1,X2的距离为   (X1 - X2) / sqrt(Σ)

    那么不同的聚类方法其实也就是不同的计算类间距离的方法

    1.最短距离法

      计算两组间距离时,将两组间距离最短的元素作为两组间的距离

    2.最长距离法

      将两组间最长的距离作为两组间的距离

      

    3.中间距离法

      将Gp,Gq合并成为Gr

      计算Gr与Gk的距离时使用如下公式

      D2kr = 1/2 * D2kp + 1/2 * D2kq + β * D2pq

       β是提前给定的超参数-0.25<=β<=0

    4.重心法

      每一组都可以看成一组多为空间中点的集合,计算组间距离时,可使用这两组点的重心之间的距离作为类间距离

      若使用的是欧氏距离

      那么有如下计算公式

      D2kr = np/nr * D2kp + nq/nr * D2kq - (np*nq / nr*nr ) * D2pq

    5.类平均法

      两组之间的距离 = 组间每两个样本距离平方的平均值开根号

      表达式为D2kr = np/nr * D2kp + nq/nr * D2kq

    6.可变类平均法

      可以反映合并的两类的距离的影响

      表达式为D2kr = np/nr * (1- β) * D2kp + nq/nr *(1- β) * D2kq + β*D2pq

      0<=β<1

    7.可变法

      D2kr =  (1- β)/2  * (D2kp + D2kq) + β*D2pq

    8.离差平方和法

      这个方法比较实用

      就是计算两类距离的话,就计算,如果将他们两类合在一起之后的离差平方和

      因为若两类本身就是一类,和本身不是一类,他们的离差平方和相差较大

      离差平方和:类中每个元素与这一类中的均值距离的平方之和

      若统一成之前的公式就是

      D2kr = (nk + np)/(nr + nk)  * D2kp + (nk + nq)/(nr + nk)   -(nk)/(nr + nk) *  * D2pq

    一些性质

      除了中间距离法之外,其他的所有聚类方法都具有单调性

      单调性就是指 每次聚类搞掉的距离递增

      空间的浓缩和扩张

      D(A)>=D(B) 表示A矩阵中的每个元素都不小于B

       D(短) <= D(平) <= D(长)

      D(短,平) <= 0  

      D(长,平) >= 0

      中间距离法无法判断  

  • 相关阅读:
    深入Nginx
    tornado django flask 跨域解决办法(cors)
    svn版本库目录结构
    【转】如何彻底删除SVN中的文件和文件夹(附恢复方法)
    【转】支付宝WAP支付接口开发
    svn密码 在服务端 到底是明文保存,还是密文保存
    简简单单删除所有.svn目录
    【转】在Eclipse中使用JUnit4进行单元测试(高级篇)
    【转】 在Eclipse中使用JUnit4进行单元测试(中级篇)
    【转】在Eclipse中使用JUnit4进行单元测试(初级篇)
  • 原文地址:https://www.cnblogs.com/shensobaolibin/p/10164337.html
Copyright © 2011-2022 走看看