AP聚类算法

AP聚类算法源于一篇科学论文,通过Responsibility和Availability两个核心概念进行聚类。R(i,k)衡量点k作为数据点i聚类中心的适宜程度,而A(i,k)涉及点k的权重和其他点的关系。算法通过迭代找到最佳聚类中心,并利用相似度计算最终分类。提供的链接中有一份详细的说明文档,可以帮助进一步理解AP算法。" 127088291,15605306,LT8912B: MIPI DSI to LVDS/HDMI转换器芯片详解,"['单片机', '视频转换', 'MIPI接口', 'LVDS接口', 'HDMI接口']
摘要由CSDN通过智能技术生成

AP聚类算法是之前科学杂志上的一个paper

之前都没有用过,今天研究了下,感觉这个东西很不错,可以用到很多地方。

http://wenku.baidu.com/view/705cd8dcd15abe23482f4de5.html

这个是网上最多的一个说明文档,说的很详细,大家可以看看

这里我就像说说自己的理解:

AP算法主要是两个东西比较重要:

Responsibility:R(i,k)用来描述点k适合作为数据点i的聚类中心的程度。

Availability:A(i,k)用来描述点i选择点k作为其聚类中心的适合程度。

R其实就是用i和k的相似度减去k和其他点的相似度和Availability的和的最大值得到。

A就是K点的权重(这里我吧P理解为k点作为中心点的权重)和其他点对K的R的最大值后取最小值。

公式如下:

R(i,k)=S(i,k)-max{A(i,j)+S(i,j)}(j{1,2,……,N,但j≠k})     

A(i,k)=min{0,R(k,k)+ (j{1,2,……,N,但j≠i且j≠k}) 

这里有一个A(k,k) = max(0, R(k,k))

这里大家计算的时候要注意后面J的取值范围。

P是i和k的相似度与i和其他店的similarity计算得到。

A是k的权重与k和除去i之后的其他店的关系计算得到。

这样大家会发现,初始化后,R如果变大。那么响应了A会变小。A变小后,反过来促使R继续变大。

从而达到一个稳定的值。

对角线上的值具有同样的特性。

这样AP算法就通过迭代,从而取最大的值的点作为分类的中心点,最后通过S去得到分类的结果。

Matlab的代码如下:


function [idx,netsim,i,unconverged,dpsim,expref]=apcluster(s,p,varargin);

% Handle arguments to function
if nargin<2 error('Too few input arguments');
else
    maxits=500; convits=40; lam=0.5; plt=0; details=0; nonoise=0;
    i=1;
    while i<=length(varargin)
        if strcmp(varargin{i},'plot')
            plt=1; i=i+1;
        elseif strcmp(varargin{i},'details')
            details=1; i=i+1;
		elseif strcmp(varargin{i},'sparse')
			[idx,netsim,dpsim,expref]=apcluster_sparse(s,p,varargin{:});
			return;
        elseif strcmp(varargin{i},'nonoise')
            nonoise=1; i=i+1;
        elseif 
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值