吸引子传播算法
2016-05-31 13:44
141 查看
引言
吸引子传播(Affinity Propagation)算法 是2007 年由Frey和 Dueck在Science 上提出的一种聚类算法. 它的特点是快速、高效, 不必事先指定聚类数目并且能够很好地解决非欧空间问题( 如不满足对称性或者不满足三角不等式) 以及大规模稀疏矩阵计算问题等。因此,它已经被用于人脸识别、基因发现、搜索最优航线、 码书设计以及实物图像识别等领域。思想
吸引子传播算法的基本思想是将全部样本看作网络的节点, 然后通过网络中各条边的消息传递,计算出各样本的聚类中心。聚类过程中,共有两种消息在各节点间传递,分别是吸引度( responsibility)和归属度(availability) 。聚类的结果取决于样本间的相似性大小和消息传递。即”信息传播”.定义(数据间的相似度):表示两个点之间的匹配程度,如果两个点差别很大,比如不属于同一个聚类,那么这个相似度可以忽略或者直接置为−inf;
定义(偏好程度);表示一个数据点对于某个样例适用性的依赖程度,通常可以通过先验知识来设置;
设数据集合为 D={x1,x2,…,xn},聚类问题就是要把该集合中的样本按照某种度量划分成若干簇类,使得类间距离极大化,类内距离极小化。描述样本间相似程度的统计量很多, 目前用得最多的是距离和相似性。
吸引子传播算法以样本之间的相似性Sn×n作为输入,输出为簇类中心以及各样本与簇类中心的所属关系.算法中引入了两类在样本之间传递的消息: 吸引度( responsibility)和归属度( availability )。设样本i 和j 属于数据集合D 。候选类代表样本j 从每个数据样本i 中搜集证据r(i,j) (称为样本j对样本i的吸引度)来描述样本j适合作为样本i 的类代表的程度; 归属度为样本 i 从候选类代表j 搜集证据a(i,j)(称为点i 对点j 的归属度)来描述样本i选择样本j 作为其类代表的适合程度. 证据越强(即r(i,j)与 a(i,j)之和越大) , 点 j 作为最终聚类中心的可能性就越大.
矩阵R,元素为r(i,k) 这个值用来反映相对于点i的其他样例,数据点k充当i的样例的适合程度;
传播方向:i→k
矩阵A,元素为a(i,k) 这个值用来反映,在其他点都偏好样例k的条件下,选择k作为数据点i的样例的可靠性;
传播方向:k→i
算法:
输入:样本数据D={x1,x2,…,xn}
过程:
1) 计算相似矩阵S,初始化两个全零矩阵R和A.
首先,更新矩阵R:
Affinity propagation(吸引子传播算法)
Frey 和Dueck 发表在 Science 的工作中, 对于人工数据以及人脸图像识别的例子采用了欧氏距离作为算法的相似性度量.不久,他们又在文献[3]中给出了图像处理中有关非欧空间相似性的计算方法:
Affinity propagation(吸引子传播算法)
其中,式( 6)中的T 0和 T 分别代表图像中心和图像的窗口参数; 式( 7)中的m( i, k)代表图像 i 和图像k满足特定匹配的特征个数.但由于其定义的相似性度量存在应用领域的局限性,因此该方法不适合在文本聚类相关领域中推广.
Affinity propagation(吸引子传播算法)
【引用文献】权吸引子传播算法及其在文本聚类中的应用
相关文章推荐
- Chrome DevTools – 25个技巧和窍门
- 科研常用的软件
- tomcat启动(设置catalina_home和不设置的区别)
- [老文章搬家] 关于 Huffman 编码
- 菜鸟目录(一些常用知识点)
- __declspec(dllimport)的作用
- Light OJ - 1008 - Fibsieve`s Fantabulous Birthday
- STL--queue
- unreal engine 4 BeginPlay,GEngine 还有其他一些东西找不到
- 机器学习,数据挖掘在研究生阶段大概要学些什么?
- 编码纠正 glob logging replace re.sub 2016.05.30回顾
- JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
- [PHP源码阅读]count函数
- Android_BroadcastReceiver(一)
- 数组对象排序:Comparable和Comparator
- Python 3.4.3 使用threading模块进行多线程编码实现
- iOS学习应用开发就业课_010:定时器和视图移动
- STL--map
- request 参数
- POJ 1077 八数码 三种解法