• AP in R


          AP聚类算法是目前十分火的一种聚类算法,它解决了传统的聚类算法的很多问题。不仅简单,而且聚类效果还不错。这里,把前两天学习的AP算法在R语言上面的模拟,将个人笔记拿出来与大家分享一下,不谈AP算法的原理,只初步的讲一下应用,更多请关注下期。

    APClusting in R

    相似矩阵的计算

    negDistMat(x, sel=NA, r=1, method="euclidean", p=2)
    expSimMat(x, sel=NA, r=2, w=1, method="euclidean", p=2)
    相似度公式:s=exp(-(d/w)^r)
    linSimMat(x, sel=NA, w=1, method="euclidean", p=2)
    相似度公式:s=max(0,1-d/w)
    corSimMat(x, sel=NA, r=1, signed=TRUE, method="pearson")
    相似度公式:s=(x^T y)/(|x| |y|)
    linKernel(x, sel=NA, normalize=FALSE) 

    x若是向量,则取其所有值进行矩阵求取。若是矩阵和数据框,则取行作为sample。

    如:

                                                            

    向量                                                                               矩阵

    AP聚类函数

    ①Apcluster()进行Ap过程

    apcluster(x,p)

    x是相似矩阵

    p是指定簇时候的界定值

    ②同时求相似矩阵和执行Ap

    apcluster(s, x)
    s是相似矩阵的求取函数

    其中,negDistMat()可以指定参数,如negDistMat(r=2)

    聚类返回结果APResult

    我们作一个二维的数据集的聚类

     

    从图中我们可以看到

    a.样本个数                                 

    b.迭代次数                                  res@it

    c.簇的个数以及簇的成员     

    d.簇的界定值 Input preference大于它就被选为簇中心

    e.簇中心 Exemplar

    等;

    res@sim           相似矩阵

    对结果进行绘图

    plot函数

    apcluster里面对plot函数进行了重写,plot(x,y)

    x是聚类结果,y是数据集

     

    由上图我们也可以看到,两个簇中心是30[0.2796125  0.7300467]、36[0.7023239  0.4018984]

    heatmap函数
    a.
    heatmap(x)
    x是聚类结果

     

    由上图可以看出各点之间的相似度

    b.

    heatmap(sim),画相似矩阵的热点图,如图

    heatmap(res@sim[1:10,1:10])

    由于数据较多,我们只取前10行以及前10列进行绘图

     

    由上图可以看出各点之间的相似对,以及他们之间的层次关系.

  • 相关阅读:
    SQL注入实验-2021.01.24
    数据库的搭建与基本语句2021-01-24
    Linux
    磁盘配置
    在Vmware中Centos下的Hadoop环境搭建
    Linux系统(CentOS)-2021.1.19
    中间件,JavaScript,PHP及burpSuite暴力破解实验-2021.1.16
    html,css学习笔记-2021.1.15
    第一周学习视频(二)
    第一周学习视频(一)
  • 原文地址:https://www.cnblogs.com/mixes/p/3707805.html
Copyright © 2020-2023  润新知