資源簡介
這是近鄰傳播聚類算法創始人Frey & Dueck在2007年Science雜志上面發表的“Clustering by Passing Messages between data points”論文里面方法的MATLAB實現程序代碼,俗稱AP聚類代碼。里面包含兩個版本:一個是普通版的,一個是稀疏版本的,下載后,先添加數據集,再調用這兩個方法就行了。

代碼片段和文件信息
%APCLUSTER?Affinity?Propagation?Clustering?(Frey/Dueck?Science?2007)
%?[idxnetsimdpsimexpref]=APCLUSTER(sp)?clusters?data?using?a?set?
%?of?real-valued?pairwise?data?point?similarities?as?input.?Clusters?
%?are?each?represented?by?a?cluster?center?data?point?(the?“exemplar“).?
%?The?method?is?iterative?and?searches?for?clusters?so?as?to?maximize?
%?an?objective?function?called?net?similarity.
%?
%?For?N?data?points?there?are?potentially?N^2-N?pairwise?similarities;?
%?this?can?be?input?as?an?N-by-N?matrix?‘s‘?where?s(ik)?is?the?
%?similarity?of?point?i?to?point?k?(s(ik)?needn抰?equal?s(ki)).??In?
%?fact?only?a?smaller?number?of?relevant?similarities?are?needed;?if?
%?only?M?similarity?values?are?known?(M?%?an?M-by-3?matrix?with?each?row?being?an?(ijs(ij))?triple.
%?
%?APCLUSTER?automatically?determines?the?number?of?clusters?based?on?
%?the?input?preference?‘p‘?a?real-valued?N-vector.?p(i)?indicates?the?
%?preference?that?data?point?i?be?chosen?as?an?exemplar.?Often?a?good?
%?choice?is?to?set?all?preferences?to?median(s);?the?number?of?clusters?
%?identified?can?be?adjusted?by?changing?this?value?accordingly.?If?‘p‘?
%?is?a?scalar?APCLUSTER?assumes?all?preferences?are?that?shared?value.
%?
%?The?clustering?solution?is?returned?in?idx.?idx(j)?is?the?index?of?
%?the?exemplar?for?data?point?j;?idx(j)==j?indicates?data?point?j?
%?is?itself?an?exemplar.?The?sum?of?the?similarities?of?the?data?points?to?
%?their?exemplars?is?returned?as?dpsim?the?sum?of?the?preferences?of?
%?the?identified?exemplars?is?returned?in?expref?and?the?net?similarity?
%?objective?function?returned?is?their?sum?i.e.?netsim=dpsim+expref.
%?
%? [?...?]=apcluster(sp‘NAME‘VALUE...)?allows?you?to?specify?
%? ??optional?parameter?name/value?pairs?as?follows:
%?
%???‘maxits‘?????maximum?number?of?iterations?(default:?1000)
%???‘convits‘????if?the?estimated?exemplars?stay?fixed?for?convits?
%??????????iterations?APCLUSTER?terminates?early?(default:?100)
%???‘dampfact‘???update?equation?damping?level?in?[0.5?1).??Higher?
%????????values?correspond?to?heavy?damping?which?may?be?needed?
%????????if?oscillations?occur.?(default:?0.9)
%???‘plot‘???????(no?value?needed)?Plots?netsim?after?each?iteration
%???‘details‘????(no?value?needed)?Outputs?iteration-by-iteration?
%??????details?(greater?memory?requirements)
%???‘nonoise‘????(no?value?needed)?APCLUSTER?adds?a?small?amount?of?
%??????noise?to?‘s‘?to?prevent?degenerate?cases;?this?disables?that.
%?
%?Copyright?(c)?B.J.?Frey?&?D.?Dueck?(2006).?This?software?may?be?
%?freely?used?and?distributed?for?non-commercial?purposes.
%??????????(RUN?APCLUSTER?WITHOUT?ARGUMENTS?FOR?DEMO?CODE)
function?[idxnetsimdpsimexpref]=apcluster(spvarargin);
if?nargin==0?%?display?demo
fprintf(‘Affinity?Propagation?(APCLUSTER)?sample/demo?code\n\n‘);
fprintf(‘N=100;?x=rand(N2);?%?Create?N?2-D?data?points\n‘);
fprintf(‘M=N*N-N;?s=zeros(M3);?%?Mak
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11193??2014-01-13?15:54??原始版本AP程序\apcluster.m
?????文件??????13411??2014-01-13?15:55??原始版本AP程序\apclusterSparse.m
?????目錄??????????0??2013-02-19?20:08??原始版本AP程序
-----------?---------??----------?-----??----
????????????????24604????????????????????3
評論
共有 條評論