聚类算法之AP算法

本文深入探讨了聚类算法中的凝聚层次聚类(Agglomerative Clustering,简称AP算法)。首先介绍了AP的基本原理,包括如何通过距离度量构建层次结构。接着详细讲解了AP的步骤,包括计算相似矩阵、构建距离树以及剪枝过程。最后,通过实例分析展示了AP算法在实际数据集上的应用效果,并与K-means进行了对比,强调了AP在处理非球形分布和不同大小簇时的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Preference: -5.29914553034
mul= 1.0
p=1.0 -5.29914553034 聚类簇的个数为: 16
# -*- coding:utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt
import sklearn.datasets as ds
import matplotlib.colors
from sklearn.cluster import AffinityPropagation
from sklearn.metrics import euclidean_distances

#聚类算法之AP算法:
#1--与其他聚类算法不同,AP聚类不需要指定K(金典的K-Means)或者是其他描述聚类个数的参数
#2--一个聚类中最具代表性的点在AP算法中叫做Examplar,与其他算法中的聚类中心不同,examplar
#是原始数据中确切存在的一个数据点,而不是由多个数据点求平均而得到的聚类中心
#3--多次执行AP聚类算法,得到的结果完全一样的,即不需要进行随机选取初值步骤.
#算法复杂度较高,为O(N*N*logN),而K-Means只是O(N*K)的复杂度,当N》3000时,需要算很久
#AP算法相对于Kmeans优势是不需要指定聚类数量,对初始值不敏感

#AP算法应用场景:图像、文本、生物信息学、人脸识别、基因发现、搜索最优航线、 码书设计以及实物图像识别等领域

#算法详解: http://
将传递闭包聚类算法改为AP聚类算法需要进行以下步骤: 1. 确定相似度矩阵 AP算法同样需要相似度矩阵。相似度矩阵是指每个数据点之间的相似度值,可以根据具体业务需求进行定义。 2. 初始化矩阵 AP算法需要初始化两个矩阵,分别是责任矩阵R和可用矩阵A。对于传递闭包聚类算法中生成的传递闭包矩阵,可以将其作为AP算法中的相似度矩阵,并将其转化为可用矩阵A。 3. 计算责任矩阵R 与传递闭包聚类算法类似,AP算法也需要计算责任矩阵R。计算方法如下: - 对于每个数据点i,找到与其相似度最大的数据点j,并将j称为i的“备选中心”(candidate center)。 - 对于每个备选中心j,找到与其相似度次大的数据点k,并将其称为j的“备选伙伴”(candidate partner)。 - 如果备选伙伴k是i,则将i和j的责任值更新为相似度矩阵中i和j的值减去相似度矩阵中j和k的值。否则,将i和j的责任值更新为0。 4. 计算可用矩阵A 计算可用矩阵A的方法也与传递闭包聚类算法类似。对于每个数据点i,计算其可用值A[i]为: - 如果i是j的备选中心,则A[i]等于i和j的责任值之和。 - 如果i不是任何数据点的备选中心,则A[i]等于0。 5. 更新矩阵 根据责任矩阵R和可用矩阵A,更新数据点的归属值和中心点的数量估计值。具体更新方法可以参考AP聚类算法的更新规则。 6. 迭代更新 重复更新矩阵,直到收敛或达到最大迭代次数为止。 以上就是将传递闭包聚类算法改为AP聚类算法的步骤。需要注意的是,AP算法相对于传递闭包聚类算法来说,更加稳定,但计算复杂度更高,需要更多的时间和计算资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值