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列进行绘图

 

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

转载于:https://www.cnblogs.com/mixes/p/3707805.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx 模块解析

nginx的模块非常之多,可以认为所有代码都是以模块的形式组织,这包括核心模块和功能模块,针对不同的应用场合,并非所有的功能模块都要被用到,附录A给出的是默认configure(即简单的http服务器应用&#xff09…

python关键字和保留字_Python关键字

python关键字和保留字关键词 (Keywords) Keywords are the reserved words in Python programming language (and, any other programming languages like C, C, Java, etc) whose meanings are defined and we cannot change their meanings. In python programming languages…

《LeetcodeHot100非困难题补录》

最近比较闲,也比较焦虑,刷刷题吧 目录11. 盛最多水的容器22. 括号生成31. 下一个排列48. 旋转图像49. 字母异位词分组56. 合并区间75. 颜色分类79. 单词搜索114. 二叉树展开为链表141. 环形链表148. 排序链表152. 乘积最大子数组169. 多数元素207. 课程表…

Java里String.split需要注意的用法

我们常常用String的split()方法去分割字符串,有两个地方值得注意: 1. 当分隔符是句号时("."),需要转义: 由于String.split是基于正则表达式来分割字符串,而句号在正则表达式里表示任意字符。 //Wrong: //Str…

C# Socket 例子(控制台程序)

服务器代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; using System.IO;namespace TCPListener {class Program{static void Main(string[] args){const int BufferSize 1024;Con…

Scala中的值类

Value classes are a special mechanism in Scala that is used to help the compiler to avoid allocating run time objects. 值类是Scala中的一种特殊机制,用于帮助编译器避免分配运行时对象。 This is done by defining a subclass of AnyVal. The only parame…

《MySQL8.0.22:Lock(锁)知识总结以及源码分析》

目录1、关于锁的一些零碎知识,需要熟知事务加锁方式:Innodb事务隔离MVCC多版本并发控制常用语句 与 锁的关系意向锁行级锁2、锁的内存结构以及一些解释3、InnoDB的锁代码实现锁系统结构lock_sys_tlock_t 、lock_rec_t 、lock_table_tbitmap锁的基本模式的…

关于ORA-04021解决办法(timeout occurred while waiting to lock object)

某个应用正在锁定该表或者包 表为 select b.SID,b.SERIAL#,c.SQL_TEXT from v$locked_object a, v$session b, v$sqlarea c where a.SESSION_ID b.SID and b.SQL_ADDRESS c.ADDRESS and c.sql_text like %table_name% 包为 select B.SID,b.USERNAME,b.MACHINE FROM V$ACCESS …

HtmlAutoTestFrameWork

前段时间做的自动化测试的是Silverlight的,框架都已经搭好。突然测试发现这里还有一个要发送邮件的html页面,并且将另外启动浏览器,于是今天下午把这个html的也写出来。用法 : HtmlAutoTestFrameWork htf new HtmlAutoTestFrameW…

L8ER的完整形式是什么?

L8ER:稍后 (L8ER: Later) L8ER is an abbreviation of "Later". L8ER是“ Later”的缩写 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Facebook, Yahoo Messenger, and Gmail, etc…

Randomize select algorithm 随机选择算法

从一个序列里面选择第k大的数在没有学习算法导论之前我想最通用的想法是给这个数组排序,然后按照排序结果返回第k大的数值。如果使用排序方法来做的话时间复杂度肯定至少为O(nlgn)。 问题是从序列中选择第k大的数完全没有必要来排序&#xff…

《Linux杂记:一》

目录CPU负载和CPU利用率CPU负载很高,利用率却很低的情况负载很低,利用率却很高常用linux命令常用的文件、目录命令常用的权限命令常用的压缩命令CPU负载和CPU利用率 可以通过 uptime , w 或者 top 命令看到CPU的平均负载。 Load Average :负载的3个数字,比如上图的0.57、0.4…

IOS Plist操作

代码:copy BUNDLE下的plist文件 到 library下面。 bundle下不支持些,library,doc路径支持读与写。 (void)copyUserpigListToLibrary {NSFileManager *fileManager [NSFileManager defaultManager];NSArray *paths NSSearchPathForDirector…

《线程管理:线程基本操作》

目录线程管理启动线程与(不)等待线程完成特殊情况下的等待(使用trycath或rall)后台运行线程线程管理 启动线程与(不)等待线程完成 提供的函数对象被复制到新的线程的存储空间中,函数对象的执行…

scala特质_Scala的特质

scala特质Scala特质 (Scala traits) Traits in Scala are like interfaces in Java. A trait can have fields and methods as members, these members can be abstract and non-abstract while creation of trait. Scala中的特性类似于Java中的接口 。 特征可以具有作为成员的…

优化PHP代码的40条建议(转)

优化PHP代码的40条建议 40 Tips for optimizing your php Code 原文地址:http://reinholdweber.com/?p3 英文版权归Reinhold Weber所有,中译文作者yangyang(aka davidkoree)。双语版可用于非商业传播,但须注明英文版作…

Iptables入门教程

转自:http://drops.wooyun.org/tips/1424 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成。 netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内…

《线程管理:传递参数、确定线程数量、线程标识》

参考《c Concurrency In Action 》第二章做的笔记 目录传递参数量产线程线程标识传递参数 thread构造函数的附加参数会拷贝至新线程的内存空间中,即使函数中的采纳数是引用类型,拷贝操作也会执行。如果我们期待传入一个引用,必须使用std::re…

手把手玩转win8开发系列课程(14)

这节的议程就是——添加appbar appbar是出现在哪儿了,出现在屏幕的底部。他能使用户能用手势或者使用鼠标操作程序。metro UI 重点是在主要的控件使用许多控件,使其用户使用win8电脑更加的方便。而appBar使其用户体验更好。在这节中,我将告诉…

No identities are available for signing 的解决办法

今天重新上传做好的app提交到app store,结果就出现标题上的错误。“No identities are available for signing”。 以后碰到这样的问题按照下面几个步骤来做: 进入Distribution -----下载发布证书 -----双击安装-----重启Xcode就能上传了 其他细节 如果再…