1. 程式人生 > >AP聚類演算法原理分析

AP聚類演算法原理分析

AP聚類演算法:

AP演算法在開始時,將所有的節點都看成潛在的聚類中心,然後通過節點之間的通訊找到最合適的聚類中心。
輸入為節點間的相似度矩陣S:
其中S(i,j)表示節點i與節點j之間的相似度,也表明了j作為i的聚類中心的合適程度。
S(k,k)表示節點k作為k的聚類中心的合適程度,即節點k成為聚類中心的合適程度。
在最開始的時候,這個值是初始化時使用者給定的值,會影響到最後的聚類數量

AP節點之間傳遞訊息為兩類:吸引度和歸屬度

首先,吸引度是節點i向節點k的資訊,傳遞了節點k對節點i的吸引度,記為r(i,k)
首先我們有相似度矩陣記錄了k成為i的聚類中心的合適程度S(i,k),那麼這裡我們只需要證明k比其他節點更適合就可以了,對於其他節點k’,我們有S(i,k’)表示節點k‘作為節點i的聚類中心的合適度。
那麼再定義一個a(i,k’)表示i對於節點k’的認可度(歸屬度)
這兩個值相加,a(i,k‘)+S(i,k’)就可以計算出節點k‘作為節點i的聚類中心的合適程度。
這裡,在所有其他節點節點k’中找到最大的a(i,k‘)+S(i,k’)即,max {a(i,k‘)+S(i,k’)}
再使用S(i,k)-max{a(i,k‘)+S(i,k’)}就可以得到k對於i的吸引度了:r(i,k)=S(i,k)-max{a(i,k‘)+S(i,k’)}

接下來計算上面提到的歸屬度a(i,k),表示了節點i選擇節點k作為它的聚類中心的合適程度。

思想:

如果節點k作為其他節點i‘的聚類中心的合適程度很大,那麼節點k作為節點i的聚類中心的合適程度也可能很大。
然後就可以先計算節點k對其他節點的吸引度r(i’,k)然後做一個累加和表示節點k對其他節點的吸引度:∑max{0,r(i‘,k)}
然後再加上r(k,k)這裡為什麼要加上r(k,k),根據吸引度公式我們可以看出,其他r(k,k)反應的是節點k有多不適合被劃分到其他聚類中心。
即,a(i,k)=min{0,r(k,k)+∑max{0,r(i‘,k)}}
a(k,k)=∑max{0,r(i’,k)}主要反應了k作為聚類中心的能力
這裡寫圖片描述

以選舉代表為例:

S(i,k)就相當於i對選k這個人的一個固有的偏好
r(i,k)表示S(i,k)減去最強競爭對手的評分,可以理解為k對i這個選民的競爭中的優勢程度
r(i,k)的更新過程對應選民i對各個參選人的挑選(超出眾超有吸引力)
a(i,k):從公式裡可以看到,所有r(i‘,k)>0的值都對a有正的加成
即,選民i通過網上關於k的民意調檢視到:有很多人(i’)都覺得k不錯(r(i‘,k)>0),那麼選民i也就會相應的覺得k不錯,是個可以相信的選擇。
a(i,k)的更新過程對應關於參選人k的民意調查對於選民i的影響。(已經有很多跟隨者的人更有吸引力)
兩者交替的過程也就可以理解為選民在各個參選人之間不斷的比較和不斷的參考各個參選人給出的民意調查
r(i,k)的思想反應的是競爭,a(i,k)這是為了讓聚類更加成功。

相關推薦

AP演算法原理分析

AP聚類演算法: AP演算法在開始時,將所有的節點都看成潛在的聚類中心,然後通過節點之間的通訊找到最合適的聚類中心。 輸入為節點間的相似度矩陣S: 其中S(i,j)表示節點i與節點j之間的相似度,也表明了j作為i的聚類中心的合適程度。 S(k,k)表示節

K-means演算法原理分析與實際應用案例分析(案例分析另起一篇部落格)

引言 在資料分析中,我們常常想將看上去相似或者行為形似的資料聚合在一起。例如,對一個營銷組織來說,將不同客戶根據他們的特點進行分組,從而有針對性地定製營銷活動,這很重要。又比如,對學校老師來說,將學生分組同樣能夠有所側重的進行教育活動。分類與聚類是資料探勘領域

K-means演算法原理簡單介紹

K-means演算法 (1. 剛開始隨機選擇兩個點作為簇重心,然後計算每個資料點離這個重心的距離並把這些點歸為兩個類) (上一步的結果如下圖,所有離藍色叉近的點被標為藍色了,紅色亦然)

層次演算法原理

層次聚類演算法的原理及實現Hierarchical Clustering 2016年4月19日 BY 藍鯨 5 COMMENTS 層次聚類(Hierarchical Clustering)是聚類演算法的一種,通過計算不同類別資料點間的相似度來建立一棵有層次的巢狀聚類樹。在

java實現K-means演算法,k-means演算法原理

/** * 需要所有point 以及族中心list * * @author:Yien * @when:2018年5月20日下午3:14:09 * @Description:TOD

【無監督學習】1:K-means演算法原理

前言:粗略研究完神經網路基礎——BP、CNN、RNN、LSTM網路後自己算是鬆懈了很多,好長的時間都沒有堅持再更新部落格了。“腐敗”生活了這麼久,還是要找到自己一點樂趣吧,於是想了一想,決定把《機器學習》的演算法研究過得都重新梳理一遍,於是就從無監督學習——聚類

層次演算法原理及實現

聚類 聚類是對點集進行考察並按照某種距離測度將他們聚成多個“簇”的過程。聚類的目標是使得同一簇內的點之間的距離較短,而不同簇中點之間的距離較大。 一、聚類演算法介紹      層次法聚類和點分配法聚類。 1.1     點、空間和距離 點集是一種適合於聚類的資料集,每個點都是某空間下的物件。一般意義上,空間

【無監督學習】5:譜演算法原理介紹

前言:學習譜聚類,最好有一些圖論、矩陣分解(SVD)方面的知識,這樣會更加有利於譜聚類的學習。當然,譜聚類理解起來並不困難,實際操作也大多是譜聚類+K-means聚類聯合使用的。 –—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—

K-Means演算法原理

    K-Means演算法是無監督的聚類演算法,它實現起來比較簡單,聚類效果也不錯,因此應用很廣泛。K-Means演算法有大量的變體,本文就從最傳統的K-Means演算法講起,在其基礎上講述K-Means的優化變體方法。包括初始化優化K-Means++, 距離計算優化elkan K-Means演算法和大資料

淺談AP演算法-matlab

  AP(Affinity Propagation)演算法,稱為仿射傳播聚類演算法、近鄰傳播聚類演算法、親和傳播聚類演算法,是根據資料點之間的相似度來進行聚類,可以是對稱的,也可以是不對稱的。 該演算法不需要先確定聚類的數目,而是把所有的資料點都看成潛在意義上的聚類中心(ex

【無監督學習】DBSCAN演算法原理介紹,以及程式碼實現

前言:無監督學習想快一點複習完,就轉入有監督學習 聚類演算法主要包括哪些演算法?主要包括:K-m

k-means演算法原理及python3實現

本文主要內容:                 1.k-means解決的問題;                 2.k-means原理介紹;                 3.k-means的簡單實現。 1.k-means解決的問題          k-

【無監督學習】2:DBSCAN演算法原理

前言:無監督學習想快一點複習完,就轉入有監督學習 –—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-——-—-—-—-—-—-—-—-—-—-—-—-—-—-——- –—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—

大資料:Spark mlib(一) KMeans演算法原始碼分析

1. 聚類1.1 什麼是聚類?所謂聚類問題,就是給定一個元素集合D,其中每個元素具有n個可觀察屬性,使用演算法將集合D劃分成k個子集,要求每個子集內部的元素之間相異度儘可能低,而不同子集的元素相異度儘可能高,其中每個子集叫做一個簇。1.2 KMeans 聚類演算法K-Mean

K-Means演算法原理及實現

#include <iostream> #include <cstdlib> #include <ctime> #include <vector> #include <cmath> using namespace std; class Clust

AP演算法使用詳解(scikit-learn)

    Affinity Propagation Clustering(簡稱AP演算法)是2007提出的,當時發表在Science上《single-exemplar-based》。特別適合高維、多類資料快速聚類,相比傳統的聚類演算法,從聚類效能和效率方面都有大幅度的提升。 

Affinity Propagation: AP演算法

演算法概述 原文: [Frey B J, Dueck D. Clustering by passing messages between data points[J]. science, 2007, 315(5814): 972-976.](Frey B J

機器學習中K-means演算法原理及C語言實現

本人以前主要focus在傳統音訊的軟體開發,接觸到的演算法主要是音訊訊號處理相關的,如各種編解碼演算法和回聲消除演算法等。最近切到語音識別上,接觸到的演算法就變成了各種機器學習演算法,如GMM等。K-means作為其中比較簡單的一種肯定是要好好掌握的。今天就講講K-means的基本原理和程式碼實現。其中基本原

【機器學習】:Kmeans均值演算法原理(附帶Python程式碼實現)

這個演算法中文名為k均值聚類演算法,首先我們在二維的特殊條件下討論其實現的過程,方便大家理解。 第一步.隨機生成質心 由於這是一個無監督學習的演算法,因此我們首先在一個二維的座標軸下隨機給定一堆點,並隨即給定兩個質心,我們這個演算法的目的就是將這一堆點根據它們自身的座標特徵分為兩類,因此選取了兩個質心,什麼時

KMeans演算法分析以及實現

KMeans KMeans是一種無監督學習聚類方法, 目的是發現數據中資料物件之間的關係,將資料進行分組,組內的相似性越大,組間的差別越大,則聚類效果越好。 無監督學習,也就是沒有對應的標籤,只有資料記錄.通過KMeans聚類,可以將資料劃分成一個簇,進而發現數據之間的關係.