affinitypropagation算法介绍

上传人:第*** 文档编号:31312160 上传时间:2018-02-06 格式:DOCX 页数:8 大小:253.92KB
返回 下载 相关 举报
affinitypropagation算法介绍_第1页
第1页 / 共8页
affinitypropagation算法介绍_第2页
第2页 / 共8页
affinitypropagation算法介绍_第3页
第3页 / 共8页
affinitypropagation算法介绍_第4页
第4页 / 共8页
affinitypropagation算法介绍_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《affinitypropagation算法介绍》由会员分享,可在线阅读,更多相关《affinitypropagation算法介绍(8页珍藏版)》请在金锄头文库上搜索。

1、AP 聚类算法1. 分类与聚类1.1 分类算法简介分类(classification )是找出描述并区分数据类或概念的模型(或函数) ,以便能够使用模型预测类标记未知的对象类。在分类算法中输入的数据,或称训练集(Training Set) ,是一条条的数据库记录(Record)组成的。每一条记录包含若干条属性( Attribute) ,组成一个特征向量。训练集的每条记录还有一个特定的类标签(Class Label)与之对应。该类标签是系统的输入,通常是以往的一些经验数据。一个具体样本的形式可为样本向量:(v1, v2, . , vn; c)。在这里 vi 表示字段值,c 表示类别。 分类的目的

2、是:分析输入的数据,通过在训练集中的数据表现出来的特性,为每一个类找到一种准确的描述或者模型,这种描述常常用谓词表示。由此生成的类描述用来对未来的测试数据进行分类。尽管这些未来的测试数据的类标签是未知的,我们仍可以由此预测这些新数据所属的类。注意是预测,而不能肯定。我们也可以由此对数据中的每一个类有更好的理解。也就是说:我们获得了对这个类的知识。下面对分类流程作个简要描述:训练:训练集特征选取训练 分类器分类:新样本特征选取分类 判决常见的分类算法有:决策树、KNN 法(K-Nearest Neighbor)、SVM 法、VSM 法、Bayes 法、神经网络等。1.2 聚类算法简介聚类(clu

3、stering) 是指根据“物以类聚 ”的原理,将本身没有类别的样本聚集成不同的组,这样的一组数据对象的集合叫做簇,并且对每一个这样的簇进行描述的过程。与分类规则不同,进行聚类前并不知道将要划分成几个组和什么样的组,也不知道根据哪些空间区分规则来定义组。它的目的是使得属于同一个簇的样本之间应该彼此相似,而不同簇的样本应该足够不相似。聚类分析的算法可以分为:划分法(Partitioning Methods) 、层次法(Hierarchical Methods) 、基于密度的方法(density-based methods) 、基于网格的方法(grid-based methods) 、基于模型的方

4、法( Model-Based Methods) 。经典的 K-means 和 K-centers 都是划分法。1.3 分类与聚类的区别聚类分析也称无监督学习或无指导学习,聚类的样本没有标记,需要由聚类学习算法来自动确定; 在分类中,对于目标数据库中存在哪些类是知道的,要做的就是将每一条记录分别属于哪一类标记出来。聚类学习是观察式学习,而不是示例式学习。可以说聚类分析可以作为分类分析的一个预处理步骤。2. k-means 算法k-means 算法接受输入量 k;然后将 n 个数据对象划分为 k 个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较低。簇的相似度是

5、关于簇中对象的均值度量,可以看作簇的质心(centriod) 或重心(center of gravity)。k-means 算法的工作过程说明如下:首先从 n 个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离) ,分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值) ;不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数.,其定义如下: 21| (1)ikiipCm其中,E 是数据集中所有对象的平方误差和,p 是空间中的点,表示给定对象, 是簇im

6、的均值(p 和 都是多维的) 。换句话说,对于每个簇中的每个对象,求对象到其簇中iCim心距离的平方,然后求和。这个准则试图使生成的 k 个结果簇尽可能的紧凑和独立。例 1:我们在二维空间中随机的生成 20 个数据点,将聚类数目指定为 5 个,并随机生成一个聚类中心(用“”来标注 ),根据对象与簇中心的距离,每个对象分属于最近的簇。初始示例图如下:图 1.随机生成的数据点及初始聚类中心示例图下一步,更新簇中心。也就是说,根据簇中的当前对象,重新计算每个簇的均值。使用这些新的簇中心,将对象重新分成到簇中心最近的簇中。不断迭代上面的过程,直到簇中对象的重新分布不再发生,处理结束。最终的聚类结果示例

7、图如下:图 2. 最终聚类结果示例图从上图中我们可以看到,最终的聚类结果受初始聚类中心的影响很大,而且最后的簇质心点不一定是在数据点上。K 均值算法试图确定最小化平方误差的 k 个划分。当结果簇是紧凑的,并且簇与簇之间明显分离时,它的效果较好。对处理大数据集,该算法是相对可伸缩的和有效率的,因为它的计算复杂度是 O(nkt) ,其中 n 是对象的总数,k 是簇的个数,t 是迭代的次数。通常地,kn 并且 tn。该方法经常终止于局部最优解。然而,只有当簇均值有定义的情况下 k 均值方法才能使用。在某些应用中,例如当涉及具有分类属性的数据时,均值可能无定义。用户必须事先给出要生成的簇的数目 k 可

8、以算是该方法的缺点。K 均值方法不适合于发现非凸形状的簇,或者大小差别很大的簇。此外,它对于噪声和离群点数据是敏感的,因为少量的这类数据能够对均值产生极大的影响。3AP 算法Affinity Propagation (AP) 聚类是最近在 Science 杂志上提出的一种新的聚类算法。它根据 n 个数据点之间的相似度进行聚类,这些相似度可以是对称的,即两个数据点互相之间的相似度一样(如欧氏距离 );也可以是不对称的,即两个数据点互相之间的相似度不等。这些相似度组成 n*n 的相似度矩阵 s(其中 n 表示数据集有 n 个数据点) 。AP 算法不需要事先指定聚类数目,相反它将所有的数据点都作为潜

9、在的聚类中心,称之为 exemplar。以 s 矩阵的对角线上的数值 s(k, k)作为 k 点能否成为聚类中心的评判标准,这意味着该值越大,这个点成为聚类中心的可能性也就越大,这个值又称作参考度 p (preference)。聚类的数量受到参考度 p 的影响,如果认为每个数据点都有可能作为聚类中心,那么 p 就应取相同的值。如果取输入的相似度的均值作为 p 的值,得到聚类数量是中等的。如果取最小值,得到类数较少的聚类。AP 算法中传递两种类型的消息(responsibility)和(availability)。r(i, k)表示从点 i 发送到候选聚类中心 k 的数值消息,反映 k 点是否适

10、合作为 i 点的聚类中心。a(i,k) 则从候选聚类中心 k 发送到 i 的数值消息,反映 i 点是否选择 k 作为其聚类中心。 r (i, k)与 a (i, k)越强,则k 点作为聚类中心的可能性就越大,并且 i 点隶属于以 k 点为聚类中心的聚类的可能性也越大。AP 算法通过迭代过程不断更新每一个点的吸引度和归属度值,直到产生 m 个高质量的 exemplar,同时将其余的数据点分配到相应的聚类中。在这里介绍几个文中常出现的名词:exemplar:指的是聚类中心。similarity:数据点 i 和点 j 的相似度记为 s(i, j)。是指点 j 作为点 i 的聚类中心的相似度。一般使用

11、欧氏距离来计算,如 。文中,所有点与点的相似度值全部22()()ijijxy取为负值。因为我们可以看到,相似度值越大说明点与点的距离越近,便于后面的比较计算。preference:数据点 i 的参考度称为 p(i)或 s(i, i)。是指点 i 作为聚类中心的参考度。一般取s 相似度值的中值。responsibility: r(i,k)用来描述点 k 适合作为数据点 i 的聚类中心的程度。availability:a(i,k)用来描述点 i 选择点 k 作为其聚类中心的适合程度。两者的关系如下图:数据点 i 数据点 kresponsibilityavailability图 3. 数据点之间传递

12、消息示意图下面是 r 与 a 的计算公式: (,),mx(,),(2)kiksiisik ,in0,ax0,(),(,) (3)ax()ikikrriikai 由上面的公式可以看出,当 s(k, k)较大使得 r(k, k)较大时,a(i, k)也较大, 从而类代表 k 作为最终聚类中心的可能性较大;同样,当越多的 s(k, k)较大时,越多的类代表倾向于成为最终的聚类中心。因此,增大或减小 s(k, k)可以增加或减少 AP 输出的聚类数目。Damping factor(阻尼系数):主要是起收敛作用的。 AP 聚类算法迭代过程很容易产生震荡,所以一般每次迭代都加上一个阻尼系数 :(0.5,1

13、)(,)*(,)1*,)(4)newoldrikrikrik(5laaaAP 算法的具体工作过程如下:先计算 n 个点之间的相似度值,将值放在 s 矩阵中,再选取 p 值(一般取 s 的中值) 。设置一个最大迭代次数 maxits (文中设默认值为 1000),迭代过程开始。迭代的过程主要更新两个矩阵,代表(Responsibility)矩阵 r=r(i,k),(n*n)和适选(Availabilities)矩阵 a=a(i,k),(n*n)。 这两个矩阵初始化为 0,n 是所有样本的数目。r(i,k)表示第 k 个样本适合作为第 i 个样本的类代表点的代表程度,a(i,k) 表示第 i 个样

14、本选择第k 个样本作为类代表样本的适合程度。迭代更新公式如(2)(3)。每次更新后就可以确定当前样本 i 的代表样本(exemplar) 点 k,k 就是使a(i,k)+r(i,k)取得最大值的那个 k,如果 i=k 的话,那么说明样本 i 就是自己这个 cluster 的类代表点,如果不是,那么说明 i 属于 k 所属的那个 cluster。当然,迭代停止的条件就是所有的样本的所属经过连续的 convits 次迭代都不再变化,或者迭代超过了 maxits 次。AP 聚类算法迭代过程很容易产生震荡,所以一般每次迭代都使用公式(4)(5)。例 2:我们在二维空间中随机的生成 20 个数据点,将

15、p 值设为 s 矩阵的中值,将 convits 值设置成 20, maxits 值设置成 1000,用 AP 算法进行计算,最终聚类结果如下图:图 4. AP 算法迭代过程示意图图 5. 最终聚类结果示意图在 AP 算法中,迭代次数和聚类数目主要受到两个参数的影响。其中,聚数数目主要受 preference 值(负值)的影响。下面对同一组数据集 (200 个数据点)进行计算,取不同的preference 值得到的聚类数目如下:Preference 值 聚类数目()2medians16median(s) 112median(s) 8表 1.不同的 preference 得到的聚类数目比较由表 1

16、,我们可以看出,当 preference 越大时,得到的聚类数目越多。当取不同的 (阻尼系数)值时,迭代次数和迭代过程中数据的摆动都会有很大的不同,下面同样是对同一组数据集(200 个数据点) 进行计算,取有代表性的两个值( 0.5 和 0.9)进行比较结果如下:图 6. 取 0.9 时的迭代示意图图 7. 取 0.5 时的迭代示意图从上面两个图对比中我们可以发现,当 值越小时,迭代次数会减少,但是迭代过程中 net Similarity 值波动会很大,当要聚类的数据点比较大时,这样难于收敛。当 值较大时,迭代次数会增加,但是总的 net Similarity 比较平稳。根据式(4)和式(5) ,我们也可以看到,每一次迭代的 和 受到 的影响。(,)rik(,)ai当 取较小的值时, 和 相比上一次迭代的 和 会发生较(,)newrik(,)newai old,o

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号