![基于MATLAB的人工智能模式识别](https://wfqqreader-1252317822.image.myqcloud.com/cover/370/38381370/b_38381370.jpg)
4.3 PAM算法的研究
4.3.1 PAM算法概述
PAM(Partitioning Around Medoid,围绕中心点的划分)是聚类分析算法中划分法的一种,是最早提出的K-中心点算法之一。
如今数据挖掘的理论被越来越广泛地应用在商业、制造业、金融业、医药业、电信业等领域。数据挖掘的目标之一是进行聚类分析。聚类就是把一组个体按照相似性归成若干类别,它的目的是使属于同一类别的个体之间的差别尽可能小,而不同类别上的个体间的差别尽可能大。PAM算法是众多聚类算法之一。PAM算法的优势在于:PAM算法比K-均值算法更健壮,对“噪声”和孤立点数据不敏感;它能够处理不同类型的数据点;它对小的数据集非常有效。
4.3.2 PAM算法的主要流程
输入:簇的数目k和包含n个对象的数据库。
输出:k个簇,使所有对象与其最近中心点的相异度总和最小。
(1)任意选择k个对象作为初始的簇中心点;
(2)重复;
(3)指派每个剩余对象给离它最近的中心点所表示的簇;
(4)重复;
(5)选择一个未被选择的中心点Oi;
(6)重复;
(7)选择一个未被选择的非中心点对象Oh;
(8)计算用Oh代替Oi的总代价并记录在S中;
(9)直到所有非中心点都被选择过;
(10)直到所有中心点都被选择过;
(11)如果在S中的所有非中心点代替所有中心点后计算出的总代价小于0,则找出S中的用非中心点替代中心点后代价最小的一个,并用该非中心点替代对应的中心点,形成一个新的k个中心点的集合;
(12)直到没有簇的重新分配为止,即所有的S都大于0。
PAM算法需用簇中位置最靠近中心的对象作为代表对象,然后反复地用非代表对象来代替代表对象,试图找出更好的中心点,在反复迭代的过程中,所有可能的“对象对”被分析,每个对象对中的一个对象是中心点,另一个对象是非代表对象。一个对象代表可以被最大平方-误差的值减少的对象代替。
一个非代表对象Oh是否是当前一个代表对象Oi的一个好的替代,对于每个非中心点对象Oj,有以下4种情况需要考虑。
(1)Oj当前隶属于Oi,如果Oi被Oh替换,且Oj离另一个中心点Om最近,i≠m,那么Oj被分配给Om,则替换代价为Cjih=d(j,m)-d(j,i),如图4-3所示。
(2)Oj当前隶属于Oi,如果Oi被Oh替换,且Oj离Oh最近,那么Oj被分配给Oh,则替换代价为Cjih=d(j,h)-d(j,i),如图4-4所示。
![img](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_13.jpg?sign=1738892868-8Xbr9rVjfpf2W7LQMzgNBcryEgPmLPj8-0-f8f7abfd03f3171e49bd9b3cf4e6d6c8)
图4-3 第一种情况
![img](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_14.jpg?sign=1738892868-XcaNKsJ3U5zwglJJ5PaLFqw5S3xahJ9D-0-3826a445d046a24917e90253d21fb5f7)
图4-4 第二种情况
(3)Oj当前隶属于Om,m≠i,如果Oi被Oh替换,且Oj仍然离Om最近,那么Oj被分配给Om,则替换代价为Cjih=0,如图4-5所示。
(4) Oj当前隶属于Om,m≠i,如果Oi被Oh替换,且Oj离Oh最近,那么Oj被分配给Oh,则替换代价为Cjih=d(j,h)-d(j,m),如图4-6所示。
![img](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_15.jpg?sign=1738892868-Wl1QmpHILq0BpEaCEMdmNFvemp70IiI1-0-6b059e97217964fc29a8cd5c5493e75d)
图4-5 第三种情况
![img](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_16.jpg?sign=1738892868-25jBqRUPfTiLw1PbMJ1i4MnXtHnMG2wX-0-f0f580333d1b65689e925c561fc9d574)
图4-6 第四种情况
每当重新分配发生时,平方-误差的值所产生的差别对代价函数有影响。因此,如果一个当前的中心点对象被非中心点对象代替,那么代价函数计算平方-误差的值所产生的差别。替换的总代价是所有非中心点对象所产生的代价之和。如果总代价是负的,那么实际的平方-误差的值将会减小,Oi可以被Oh替代。如果总代价是正的,则当前的中心点Oi被认为是可接受的,在本次迭代中没有变化。
4.3.3 PAM算法的MATLAB实现
![](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_17.jpg?sign=1738892868-eBOCHfIexgN1jji7bf8rhcR73ML18wNA-0-5aa0a00c3f96443a1ad67e92f951eadb)
![](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_18.jpg?sign=1738892868-RGZQYtFmKfT0zEk8gLKV5xsDUooWN3D1-0-5098e7b501187f587bd479843504753c)
![](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_19.jpg?sign=1738892868-qUaM2R4HNOWFPYhJOuTcNA9ox0lJYhfk-0-b85033401f948924ac97c655299bce72)
![](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_20.jpg?sign=1738892868-eLuW6reP6grhxe3rBNHtDBe0ifsSR3T8-0-b6c31d78171c109869a7180ac04e3480)
PAM算法的仿真结果如图4-7所示。
![img](https://epubservercos.yuewen.com/5B96F7/20205398108552606/epubprivate/OEBPS/Images/txt004_21.jpg?sign=1738892868-RLPGmxQjOh58lyY6BAQgUbzZqh4gORI0-0-1f22ae551f8f2e4a0473d4017e1298be)
图4-7 PAM算法的仿真结果