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.pswp.cn/news/377056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377056.shtml
英文地址,請注明出處:http://en.pswp.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就能上傳了 其他細節 如果再…