自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解基于凸集投影方法的聚類算法

譯文 精選
大數(shù)據(jù) 數(shù)據(jù)分析
聚類分析(或聚類)是一種數(shù)據(jù)分析技術(shù),它能夠探索和分組一組向量(或數(shù)據(jù)點),使同一聚類中的向量彼此之間比其他聚類中的向量更相似。聚類算法被廣泛應用于例如數(shù)據(jù)分析、模式識別和圖像處理等許多應用場景中。

譯者 | 朱先忠

審校 | 重樓

聚類分析(或聚類)是一種數(shù)據(jù)分析技術(shù),它能夠探索和分組一組向量(或數(shù)據(jù)點),使同一聚類中的向量彼此之間比其他聚類中的向量更相似。聚類算法被廣泛應用于例如數(shù)據(jù)分析、模式識別和圖像處理許多應用場景中。

本文介紹一種新的基于凸集投影(POCS:Projection onto Convex Sets)方法的聚類算法,稱為基于POCS的聚類算法。最初的論文在IWIS2022中介紹,源代碼也已在Github上發(fā)布。

凸集定義與啟示

凸集被定義為一組數(shù)據(jù)點,其中連接該集中任意兩個點x1和x2的線段完全包含在該集合中。根據(jù)凸集的定義,空集?、單例集、線段、超平面和歐氏球被認為是凸集。數(shù)據(jù)點也被認為是凸集,因為它是單例集(一個只有一個元素的集)。一概念啟示我們可發(fā)現(xiàn)一條新的研究路徑,即凸集投影的概念可以應用于聚類數(shù)據(jù)點。

凸集投影

首先,讓我們一起簡單回顧一下凸集投影的概念(沒有方程形式)。凸集投影的方法大致可以分為兩種形式:交替和平行。

交替凸集投影

從數(shù)據(jù)空間中的任意點開始,從該點到兩個(或多個)相交凸集的交替投影將收斂到集的交點內(nèi)的一個點。下圖給出了相應的圖形說明。

當凸集不相交時,交替投影將收斂到貪婪極限環(huán),貪婪極限環(huán)取決于投影的階數(shù)。

平行凸集投影

與交替形式不同,并行形式的凸集投影同時執(zhí)行從數(shù)據(jù)點到所有凸集的投影,并且每個投影具有重要的權(quán)重。對于兩個非空相交凸集,類似于交替版本,平行投影收斂到集的相交點。

在不相交凸集的情況下,投影將收斂到最小化解?;谕辜队暗木垲愃惴ǖ闹饕枷?/span>是從這一性質(zhì)出發(fā)產(chǎn)生的

有關(guān)凸集投影的更多詳細信息,您可以訪問原始論文和/或其他一些推薦論文(包括可用的pdf文件):

基于凸集投影方法的聚類算法

利用并行凸集投影方法的收斂性,作者提出了一種非常簡單但(在一定程度上)有效的聚類算法。該算法以類似于經(jīng)典K-Means算法的精神進行操作,但每個算法處理每個數(shù)據(jù)點的方式存在差異,即K-Means方法以相等的加權(quán)重要性處理每個數(shù)據(jù)點然而,另一方面,基于凸集投影的聚類算法,以不同的重要性權(quán)重處理每個數(shù)據(jù)點,該重要性權(quán)重與從數(shù)據(jù)點到集群原型的距離成正比。

該算法的偽代碼如下所示:

實驗結(jié)果

作者網(wǎng)站聚類基本基準出發(fā),在一些公共基準數(shù)據(jù)集上檢驗了基于凸集投影的聚類算法的性能。下表總結(jié)了這些數(shù)據(jù)集的描述。

在本文中,作者將基于凸集投影的聚類算法與其他傳統(tǒng)聚類方法(包括K-Means和模糊C-Means算法)的性能進行了比較。下表總結(jié)了針對執(zhí)行時間和集群錯誤方面的評估結(jié)果。

可視化聚類結(jié)果也如下圖所示


有關(guān)更多詳細信息,您可以在此處查看原始論文

示例代碼

讓我們在一個非常簡單的數(shù)據(jù)集上使用這個算法。為了簡單起見,可以使用以下命令安裝已發(fā)布的算法包:

pip install pocs-based-clustering

首先,讓我們導入幾個必要的包,并創(chuàng)建一個簡單的數(shù)據(jù)集,其中以10個集群為中心,周圍環(huán)繞著5000個數(shù)據(jù)點:

#導入包
import time
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from pocs_based_clustering.tools import clustering
# 生成一個簡單的數(shù)據(jù)集
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()

現(xiàn)在,使用內(nèi)置函數(shù)執(zhí)行聚類并顯示實驗結(jié)果:

# 基于凸集投影方法的聚類算法
centroids, labels = clustering(X, num_clusters, 100)
# 顯示結(jié)果
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()

結(jié)論

在這篇文章中,我簡要回顧了一種基于凸集投影(POCS)方法的簡單而有效的聚類技術(shù),稱為基于凸集投影的聚類算法。該算法利用凸集投影的收斂性將其應用于聚類任務,并在一定程度上實現(xiàn)了可行的改進。該算法的有效性已經(jīng)在一些基準數(shù)據(jù)集上得到了驗證。

原始論文可以在arXiv(預印本:https://arxiv.org/abs/2208.08888)或IEEE Xplore(已發(fā)表論文:https://ieeexplore.ieee.org/document/9920762)上找到。該代碼也在Github代碼倉庫網(wǎng)站上發(fā)布。

我很高興歡迎您來到我的Facebook頁面分享有關(guān)機器學習的內(nèi)容:深入機器學習。我的其他值得注意的帖子也可以在下面這些內(nèi)容中找到:

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:POCS-based Clustering Algorithm Explained,作者:LA Tran



責任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-04-02 14:16:45

凸集算法集合

2019-10-12 10:11:02

數(shù)據(jù)集聚類算法

2023-10-31 09:00:00

2017-04-05 09:20:14

聚類算法機器學習大數(shù)據(jù)

2017-04-07 13:00:49

機器學習大數(shù)據(jù)聚類算法

2025-03-31 08:28:24

大型語言模型LLMDeepSeek

2014-07-02 10:34:08

聚類算法算法

2020-07-09 15:26:18

Python聚類算法語言

2024-10-18 17:14:13

2017-05-15 11:10:10

大數(shù)據(jù)聚類算法

2020-05-13 15:57:59

聚類分析算法監(jiān)督學習

2016-09-30 01:10:12

R語言聚類方法

2011-07-25 15:39:49

SQL SERVER數(shù)聚類算法順序聚類算法

2011-07-26 10:16:14

SQL Server數(shù)據(jù)挖掘

2022-05-17 09:14:50

聚類算法python

2022-07-29 10:31:33

算法Python

2022-03-03 19:52:25

聚類算法D2CDBSCAN

2018-05-28 15:33:09

無監(jiān)督學習算法Python

2022-09-07 23:54:17

機器學習無監(jiān)督學習算法

2023-12-01 16:27:05

機器學習無監(jiān)督學習
點贊
收藏

51CTO技術(shù)棧公眾號