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