K-means 是一種聚類算法,且對于數(shù)據(jù)科學(xué)家而言,是簡單且熱門的無監(jiān)督式機(jī)器學(xué)習(xí)(ML)算法之一。
什么是 K-MEANS?
無監(jiān)督式學(xué)習(xí)算法嘗試在無標(biāo)記數(shù)據(jù)集中“學(xué)習(xí)”模式,發(fā)現(xiàn)相似性或規(guī)律。常見的無監(jiān)督式任務(wù)包括聚類和關(guān)聯(lián)。K-means 等聚類算法試圖通過分組對象來發(fā)現(xiàn)數(shù)據(jù)集中的相似性,與不同集群間的對象相似性相比,同一集群中對象之間的相似性更高。使用最小距離、數(shù)據(jù)點(diǎn)密度、圖形或各種統(tǒng)計(jì)分布等標(biāo)準(zhǔn)將其分組為集群。
K-means 通過最小化幾何點(diǎn)之間的平均距離將相似數(shù)據(jù)點(diǎn)分組成集群。為此,它以迭代方式將數(shù)據(jù)集分為非重疊子組(或集群)的固定數(shù)量 (K),其中每個數(shù)據(jù)點(diǎn)均屬于集群中心均值最近的集群。
為何選擇 K-MEANS?
K-means 是一種聚類算法,部署后可用于發(fā)現(xiàn)數(shù)據(jù)中尚未明確標(biāo)記的組。目前,它已廣泛應(yīng)用于各種商業(yè)應(yīng)用,包括:
客戶分割:可以對客戶進(jìn)行分組,以便更好地定制產(chǎn)品。
文本、文檔或搜索結(jié)果聚類:分組以查找文本中的主題。
圖像分組或圖像壓縮:圖像或顏色相似的組。
異常檢測:從集群中找出不相似的地方或異常值
半監(jiān)督式學(xué)習(xí):將集群與一組較小的已標(biāo)記數(shù)據(jù)和監(jiān)督式機(jī)器學(xué)習(xí)相結(jié)合,以獲得更有價值的結(jié)果。
K-MEANS 的工作原理
K-means 算法能夠識別數(shù)據(jù)集中一定數(shù)量的中心,而中心屬于特定集群所有數(shù)據(jù)點(diǎn)的算術(shù)平均值。然后,算法將每個數(shù)據(jù)點(diǎn)分配給最近的集群,因?yàn)槠鋰L試保持盡可能小的集群(K-means 中的“means”是指計(jì)算數(shù)據(jù)平均值或查找中心的任務(wù))。同時,K-means 嘗試保持其他集群盡可能不同。
在實(shí)踐中,其工作原理如下:
K-means 算法首先將所有坐標(biāo)初始化為“K”集群中心。(K 值是一個輸入變量,位置也可以作為輸入變量。)
每經(jīng)過一次算法,每個點(diǎn)都會分配給其最近的集群中心。
然后,集群中心會被更新為在該經(jīng)過中分配給其的所有點(diǎn)的“中心”。這是通過重新計(jì)算集群中心作為各自集群中點(diǎn)的平均值來實(shí)現(xiàn)的。
算法會重復(fù)執(zhí)行,直到上次迭代的集群中心發(fā)生最小變化。
如果集群呈現(xiàn)一致的球形形狀,說明 K-means 在捕獲結(jié)構(gòu)和進(jìn)行數(shù)據(jù)推理方面非常有效。但是,如果集群呈現(xiàn)更復(fù)雜的幾何形狀,那就說明算法在數(shù)據(jù)聚類方面做得不好。K-means 的另一個缺點(diǎn)是,該算法不允許彼此距離較遠(yuǎn)的數(shù)據(jù)點(diǎn)共享同一集群,而不管它們是否屬于該集群。K-means 本身不會從數(shù)據(jù)中了解到集群數(shù)量,而是必須預(yù)先定義信息。最后,當(dāng)集群之間出現(xiàn)重疊時,K-means 無法確定如何分配重疊位置的數(shù)據(jù)點(diǎn)。
適用于數(shù)據(jù)科學(xué)家的 K-MEANS
由于其內(nèi)在的簡單性以及在無監(jiān)督機(jī)器學(xué)習(xí)操作中的普及,K-means 在數(shù)據(jù)科學(xué)家中大受青睞。盡管該算法存在局限性,但其在數(shù)據(jù)挖掘操作中的適用性允許數(shù)據(jù)科學(xué)家利用該算法從業(yè)務(wù)數(shù)據(jù)中衍生出各種推理,實(shí)現(xiàn)更準(zhǔn)確的數(shù)據(jù)驅(qū)動決策。它被廣泛認(rèn)為是數(shù)據(jù)科學(xué)家最具商業(yè)重要性的算法之一。
使用 GPU 加速聚類
聚類在各種應(yīng)用程序中發(fā)揮著關(guān)鍵作用,但由于數(shù)據(jù)量不斷增加,其正面臨著計(jì)算挑戰(zhàn)。解決計(jì)算難題的極具前景的解決方案之一,即使用 GPU 進(jìn)行并行計(jì)算。
在架構(gòu)方面,CPU 僅由幾個具有大緩存內(nèi)存的核心組成,一次只可以處理幾個軟件線程。相比之下,GPU 由數(shù)百個核心組成,可以同時處理數(shù)千個線程。GPU 具有大規(guī)模并行性,并且顯存訪問帶寬優(yōu)勢顯著,因此十分適用于加速數(shù)據(jù)密集型分析。
GPU 加速的端到端數(shù)據(jù)科學(xué)
基于 CUDA 構(gòu)建的 RAPIDS 開源軟件庫套件使您能夠完全在 GPU 上執(zhí)行端到端數(shù)據(jù)科學(xué)和分析流程,同時仍然使用 Pandas 和 Scikit-Learn API 等熟悉的界面。
RAPIDS cuML 的機(jī)器學(xué)習(xí)算法和數(shù)學(xué)基元遵循熟悉的類似于 scikit-learn 的 API。單塊 GPU 和大型數(shù)據(jù)中心部署均支持 K-means、XGBoost 等主流算法。針對大型數(shù)據(jù)集,相較于同等功效的 CPU,這些基于 GPU 的實(shí)施方案能夠以 10 到 50 倍的速度更快地完成任務(wù)。
借助 RAPIDS GPU DataFrame,數(shù)據(jù)可以通過一個類似 Pandas 的接口加載到 GPU 上,然后用于各種連接的機(jī)器學(xué)習(xí)和圖形分析算法,而無需離開 GPU。這種級別的互操作性是通過 Apache Arrow 這樣的庫實(shí)現(xiàn)的。這可加速端到端流程(從數(shù)據(jù)準(zhǔn)備到機(jī)器學(xué)習(xí),再到深度學(xué)習(xí))。
RAPIDS 支持在許多熱門數(shù)據(jù)科學(xué)庫之間共享設(shè)備內(nèi)存。這樣可將數(shù)據(jù)保留在 GPU 上,并省去了來回復(fù)制主機(jī)內(nèi)存的高昂成本。
原文標(biāo)題:NVIDIA 大講堂 | 什么是 K-MEANS?
文章出處:【微信公眾號:NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
cpu
+關(guān)注
關(guān)注
68文章
10804瀏覽量
210828 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4855瀏覽量
102709 -
算法
+關(guān)注
關(guān)注
23文章
4587瀏覽量
92501 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8349瀏覽量
132312
原文標(biāo)題:NVIDIA 大講堂 | 什么是 K-MEANS?
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論