基于凸集上投影(POCS)的聚类算法

这篇具有很好参考价值的文章主要介绍了基于凸集上投影(POCS)的聚类算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

POCS:Projections onto Convex Sets。在数学中,凸集是指其中任意两点间的线段均在该集合内的集合。而投影则是将某个点映射到另一个空间中的某个子空间上的操作。给定一个凸集合和一个点,可以通过找到该点在该凸集合上的投影来进行操作。该投影是离该点最近的凸集内的点,可以通过最小化该点和凸集内任何其他点之间的距离来计算。既然是投影,那么我们就可以将特征映射到另一个空间中的凸集合上,这样就可以进行聚类或降维等操作。

本文综述了一种基于凸集投影法的聚类算法,即基于POCS的聚类算法。原始论文发布在IWIS2022上。

凸集

凸集定义为一个数据点集合,其中连接集合中任意两点x1和x2的线段完全包含在这个集合中。根据凸集的定义,认为空集∅、单集、线段、超平面、欧氏球都被认为是凸集。数据点也被认为是凸集,因为它是单例集(只有一个元素的集合)。这为 POCS 的概念应用于聚类数据点开辟了一条新路径。

凸集投影(POCS)

POCS方法大致可分为交替式和并行式两种。

1、交替式poc

从数据空间中的任意一点开始,从该点到两个(或多个)相交凸集的交替投影将收敛到集合交点内的一点,例如下图:

基于凸集上投影(POCS)的聚类算法

当凸集不相交时,交替投影将收敛到依赖于投影阶数的greedy limit cycles。

基于凸集上投影(POCS)的聚类算法

2、并行式 POCS

与交替形式不同,并行的POCS 是从数据点到所有凸集同时进行投影,并且每个投影都有一个重要性权重。对于两个非空相交凸集,类似于交替式版本,平行投影会收敛到集相交处的一个点。

基于凸集上投影(POCS)的聚类算法

在凸集不相交的情况下,投影将收敛到一个最小解。基于pocs的聚类算法的主要思想来源于这一特性。

基于凸集上投影(POCS)的聚类算法

有关POCS的更多细节,可以查看原论文

基于pocs的聚类算法

利用并行POCS方法的收敛性,论文作者提出了一种非常简单但在一定程度上有效的聚类算法。该算法的工作原理与经典的K-Means算法类似,但在处理每个数据点的方式上存在差异:K-Means算法对每个数据点的重要性加权相同,但是基于pocs的聚类算法对每个数据点的重要性加权不同,这与数据点到聚类原型的距离成正比。

算法的伪代码如下所示:

基于凸集上投影(POCS)的聚类算法

实验结果

作者在一些公共基准数据集上测试了基于pocs的聚类算法的性能。下表总结了这些数据集的描述。

基于凸集上投影(POCS)的聚类算法

作者比较了基于pocs的聚类算法与其他传统聚类方法的性能,包括k均值和模糊c均值算法。下表总结了执行时间和聚类错误方面的评估。

基于凸集上投影(POCS)的聚类算法

基于凸集上投影(POCS)的聚类算法

聚类结果如下图所示:

基于凸集上投影(POCS)的聚类算法

示例代码

我们在一个非常简单的数据集上使用这个算法。作者已经发布了直接使用的包,对于应用我们可以直接使用:

 pip install pocs-based-clustering

创建一个以10个簇为中心的5000个数据点的简单数据集:

 # Import packages
 importtime
 importmatplotlib.pyplotasplt
 
 fromsklearn.datasetsimportmake_blobs
 frompocs_based_clustering.toolsimportclustering
 
 
 # Generate a simple dataset
 num_clusters=10
 X, y=make_blobs(n_samples=5000, centers=num_clusters, \
                   cluster_std=0.5, random_state=0)
 
 plt.figure(figsize=(8,8))
 plt.scatter(X[:, 0], X[:, 1], s=50)
 plt.show()

基于凸集上投影(POCS)的聚类算法

执行聚类并显示结果:

 # POSC-based Clustering Algorithm
 centroids, labels=clustering(X, num_clusters, 100)
 
 # Display results
 plt.figure(figsize=(8,8))
 plt.scatter(X[:, 0], X[:, 1], c=labels, s=50, cmap='viridis')
 plt.scatter(centroids[:, 0], centroids[:, 1], s=100, c='red')
 plt.show()

基于凸集上投影(POCS)的聚类算法

总结

我们简要回顾了一种简单而有效的基于投影到凸集(POCS)方法的聚类技术,称为基于POCS的聚类算法。该算法利用POCS的收敛特性应用于聚类任务,并在一定程度上实现了可行的改进。在一些基准数据集上验证了该算法的有效性。

https://avoid.overfit.cn/post/bd811302f89c47fa8777c9f5bac8c59e

作者:LA Tran文章来源地址https://www.toymoban.com/news/detail-401447.html

到了这里,关于基于凸集上投影(POCS)的聚类算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无监督学习的集成方法:相似性矩阵的聚类

    在机器学习中,术语Ensemble指的是并行组合多个模型,这个想法是利用群体的智慧,在给出的最终答案上形成更好的共识。 这种类型的方法已经在监督学习领域得到了广泛的研究和应用,特别是在分类问题上,像RandomForest这样非常成功的算法。通常应用一些投票/加权系统,将

    2024年02月05日
    浏览(43)
  • 图论中的聚类系数(Clustering coefficient)简单介绍

    在GraphSage论文的理论分析部分,涉及到一个概念叫做“ Clustering coefficient” ,直译过来就是 聚类系数 ,解释为“节点的一跳邻域内封闭的三角形的比例”,本文对其做一个简单的介绍。本文参考了 Wiki百科-Clustering coefficient。 更:关于GraphSage论文详解,请参见博文《GraphSag

    2023年04月09日
    浏览(41)
  • 专栏十:10X单细胞的聚类树绘图

    经常在文章中看到对细胞群进行聚类,以证明两个cluster之间的相关性,这里总结两种绘制这种图的方式和代码,当然我觉得这些五颜六色的颜色可能是后期加的,本帖子只总结画树状图的方法 文章Single-cell analyses implicate ascites in remodeling the ecosystems of primary and metastatic tumors

    2024年02月07日
    浏览(71)
  • 【聚类】K-modes和K-prototypes——适合离散数据的聚类方法

    假设一批数据,每一个样本中,有唯一标识(id)、品类(cate_id)、受众(users, 小孩、老人、中年等)等属性,希望从其中找出一些样本,使得这些样本覆盖的品类、受众等最广。 思路是使用聚类的方式,每个簇选一个样本。观察数据,都为类别特征,常用的kmeans聚类方法

    2024年02月03日
    浏览(34)
  • 聚类分析 | MATLAB实现基于AHC聚类算法可视化

    效果一览 基本介绍 AHC聚类算法,聚类结果可视化,MATLAB程序。 Agglomerative Hierarchical Clustering(自底向上的层次聚类)是一种经典的聚类算法,它的主要思想是将每个数据点视为一个簇,然后将距离最近的两个簇合并,直到达到预设的聚类个数或者所有数据点都被合并为一个簇

    2024年02月11日
    浏览(47)
  • 聚类分析 | MATLAB实现基于DBSCAD密度聚类算法可视化

    效果一览 基本介绍 基于DBSCAD密度聚类算法可视化,MATLAB程序。 使用带有KD树加速的dbscan_with_kdtree函数进行密度聚类。然后,我们根据每个簇的编号使用hsv色彩映射为每个簇分配不同的颜色,并用散点图进行可视化展示。同时,我们用黑色的\\\"x\\\"标记表示噪声点。请注意,DBSC

    2024年02月11日
    浏览(40)
  • 机器学习:基于Kmeans聚类算法对银行客户进行分类

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 大家好,我

    2024年02月05日
    浏览(56)
  • 基于改进ISODATA算法的负荷场景曲线聚类MATLAB程序

    🍞正在为您运送作品详情 https://mbd.pub/o/bread/ZJqclJ9v 参考文献: 基于机器学习的短期电力负荷预测和负荷曲线聚类研究_张辰睿(硕士论文) 参考其第三章 主要内容: 主要包含四种聚类算法,K-means聚类、ISODATA聚类、L-ISODATA聚类及K-L-ISODATA聚类,并且包含了对聚类场景以及聚

    2024年02月13日
    浏览(41)
  • 毕业设计:基于聚类算法的网站内容安全检测系统

    目录 前言 项目背景 设计思路 2.1 支持向量机 2.2 聚类算法 模型训练 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级

    2024年02月21日
    浏览(41)
  • 基于MATLAB环境下的子空间聚类算法:理解和实践

    大家好,我是一名热衷于算法研究的技术博主。今天我想和大家分享关于子空间聚类算法在MATLAB环境下的实现和理解。我会尽可能详细地介绍相关知识,同时在文章中附带了些示例代码以供参考。聚类/子空间聚类算法是一种极具价值的研究方向,我希望大家在阅读本文后能有

    2024年02月17日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包