下圖顯示了相同的數(shù)據(jù),其中每個(gè)門店的卡布奇諾和冰咖啡銷售額分別繪制在 X 軸和 Y 軸上。在這個(gè)例子中,由于數(shù)據(jù)點(diǎn)有限,很容易在圖表上繪制兩個(gè)自然出現(xiàn)的咖啡館門店集群并手動(dòng)將其可視化。

然而,當(dāng)涉及到數(shù)千個(gè)數(shù)據(jù)點(diǎn)時(shí),需要使用聚類分析算法將數(shù)據(jù)點(diǎn)分成不同的聚類。

聚類分析有哪些應(yīng)用?

聚類分析通常有兩種主要用途:

聚類分析作為獨(dú)立工具

聚類分析作為機(jī)器學(xué)習(xí)的預(yù)處理步驟

聚類分析通常用作各種機(jī)器學(xué)習(xí)算法的預(yù)處理步驟。

分類算法對(duì)大量數(shù)據(jù)集進(jìn)行聚類分析,以過濾掉屬于明顯組的數(shù)據(jù)。然后,可以對(duì)減少的、不明顯的數(shù)據(jù)點(diǎn)使用高級(jí)數(shù)據(jù)分類技術(shù)。隨著數(shù)據(jù)集變小,計(jì)算時(shí)間大大減少。同樣的方法可以以相反的方式使用,即使用聚類分析算法來過濾掉噪聲或異常數(shù)據(jù)。

在運(yùn)行監(jiān)督學(xué)習(xí)算法之前,人們可能首先對(duì)輸入數(shù)據(jù)進(jìn)行聚類分析,以找出數(shù)據(jù)中的自然聚類。

主要的聚類分析算法有哪些?

聚類分析算法通常屬于以下幾類:

每種算法本身都很復(fù)雜,可能適合某些分析,而不適合其他分析。

基于分區(qū)的聚類分析算法

在此方法中,算法從幾個(gè)初始聚類開始。然后迭代地將數(shù)據(jù)點(diǎn)重新定位到不同的聚類中,直到實(shí)現(xiàn)最佳劃分。K 均值聚類算法是最流行的聚類算法之一。

下面的 K 均值聚類示例顯示了其工作原理。聚類分析有哪些應(yīng)用?

步驟 1:確定集群

確定算法的簇?cái)?shù)“K”,例如 K=3。算法會(huì)將上述 12 個(gè)數(shù)據(jù)點(diǎn)劃分為 3 個(gè)簇。K 可以是任意值。根據(jù)該值,聚類的正確性可能會(huì)有所不同。還有算法方法可用于確定 K 的最佳值。

第 2 步:選擇數(shù)據(jù)點(diǎn)

由于 K=3,取任意三個(gè)數(shù)據(jù)點(diǎn)作為初始均值。在此示例中,選擇點(diǎn) C、D 和 E 作為初始均值。請(qǐng)注意,K 均值算法可以將任意點(diǎn)作為初始均值。

步驟 3:計(jì)算距離

計(jì)算數(shù)據(jù)集中每個(gè)點(diǎn)到每個(gè)初始聚類均值的距離。隨機(jī)選擇了三個(gè)聚類均值 C、D 和 E。對(duì)于樣本中的每個(gè)數(shù)據(jù)點(diǎn),計(jì)算它與這三個(gè)均值的距離。兩點(diǎn) (X1, Y1) 和 (X2, Y2) 之間的歐幾里得距離使用如下:

在步驟 3 之后,表格將顯示每個(gè)數(shù)據(jù)點(diǎn)與初始平均值 C、D 和 E 的距離。

根據(jù)數(shù)據(jù)點(diǎn)的最小距離將其添加到聚類中。例如,點(diǎn) A 與初始均值 C 的距離最小。這意味著 A 在均值為 C 的聚類中。第一步完成后,便獲得了聚類。

步驟 4:重復(fù)——計(jì)算新均值

現(xiàn)在很容易看到初始聚類。下一步是計(jì)算三個(gè)新的聚類平均值。為此,取特定聚類中的每個(gè)數(shù)據(jù)點(diǎn),并計(jì)算平均值。

“C” 聚類的新聚類均值 = (5+2+6+1+4+3+6/7, 21+11+22+10+23+14+12/7) = (3.85, 16.14),我們將此點(diǎn)稱為 X。

“D” 聚類的新聚類均值 = (1+2+5/3, 6+8+4/3) = (2.66, 6),我們將此點(diǎn)稱為 Y。

“E” 聚類的新聚類均值 = (4+5/2, 10+11/2) = (4.5, 10.5)。我們把這個(gè)點(diǎn)稱為 Z。

步驟 5:重復(fù)——計(jì)算每個(gè)數(shù)據(jù)點(diǎn)與新均值的距離

重復(fù)步驟 3,找出所有數(shù)據(jù)點(diǎn)與新計(jì)算的聚類均值 X、Y 和 Z 的距離。在這個(gè)新的迭代中,很容易看出數(shù)據(jù)點(diǎn) C、D、I 和 L 的最小距離已經(jīng)改變。它們現(xiàn)在屬于一個(gè)新的聚類,如下所示。

然后,由于某些數(shù)據(jù)點(diǎn)已經(jīng)改變了其聚類,因此需要繼續(xù)進(jìn)行 K-means 迭代。

步驟 6:重復(fù)——計(jì)算新均值和新聚類

由于數(shù)據(jù)點(diǎn) C、D、I、L 已改變其聚類,因此需要像步驟 4 中那樣計(jì)算新的聚類均值。為此,取特定聚類中的每個(gè)數(shù)據(jù)點(diǎn),并計(jì)算平均值。然后像步驟 5 中一樣,計(jì)算從每個(gè)數(shù)據(jù)點(diǎn)到新聚類均值的距離。根據(jù)距離,將數(shù)據(jù)點(diǎn)分配到與其距離最小的聚類。

K-means 算法何時(shí)結(jié)束?

K-means 是一種迭代分割算法:

在新的迭代中,如果每個(gè)數(shù)據(jù)點(diǎn)都保留在其先前的聚類中,則 K 均值算法終止。這意味著已獲得局部最優(yōu)解。

基于 K-中心點(diǎn)劃分的聚類算法

K-medoids 算法是另一種基于分區(qū)的聚類算法。K-medoid 算法選擇 medoids 作為聚類的代表對(duì)象。K-medoid 算法試圖找到與特定聚類中每個(gè)其他數(shù)據(jù)點(diǎn)具有最小差異的數(shù)據(jù)點(diǎn)。在差異最小化之前,K-medoid 算法會(huì)迭代地對(duì)數(shù)據(jù)集進(jìn)行分區(qū)。K-均值算法通常使用平方誤差距離(歐幾里得距離),而 K-medoid 算法通常使用絕對(duì)值距離(如曼哈頓距離)來測(cè)量兩個(gè)數(shù)據(jù)點(diǎn)之間的差異。

K-medoid 算法的一個(gè)標(biāo)準(zhǔn)實(shí)現(xiàn)是 Partition Around Medoids (PAM) 算法。以下是 PAM 算法的基本步驟。

  1. 選擇一個(gè) K 的值,其中 K 是數(shù)據(jù)點(diǎn)將被劃分到的聚類的數(shù)量。
  2. 隨機(jī)選擇 K 個(gè)數(shù)據(jù)點(diǎn)作為中心點(diǎn)。
  3. 對(duì)于數(shù)據(jù)集中的每個(gè)數(shù)據(jù)點(diǎn) (Xi, Yi),測(cè)量該點(diǎn)與上面選定的中心點(diǎn)之間的差異。常用的差異度量是曼哈頓距離:
  4. | Xi – Ci| + | Yi – Cj|, 其中 (Ci, Cj) 表示中心點(diǎn)。
  1. 每個(gè)數(shù)據(jù)點(diǎn) (Xi, Yi) 被分配到差異最小的聚類中。
  2. 對(duì)于上述每個(gè)聚類,計(jì)算總成本——該聚類中每個(gè)數(shù)據(jù)點(diǎn)的差異總和。
  3. 現(xiàn)在,隨機(jī)選擇一個(gè)非中心點(diǎn)作為新的中心點(diǎn)并重復(fù)步驟 3-5。
  4. 當(dāng)簇中沒有變化時(shí)停止。

K-means 和 K-medoid 算法的比較

盡管 K-均值算法很簡單,但當(dāng)數(shù)據(jù)有大量噪聲和異常值時(shí),它不會(huì)產(chǎn)生良好的結(jié)果。在這種情況下,K-中心點(diǎn)方法更為穩(wěn)健。然而,像 PAM 這樣的 K-中心點(diǎn)算法只有在數(shù)據(jù)集較小時(shí)才有用。當(dāng)數(shù)據(jù)集大小增加時(shí),K-中心點(diǎn)算法的計(jì)算時(shí)間會(huì)成倍增加。

除法算法

顧名思義,分裂算法首先將所有數(shù)據(jù)點(diǎn)分配到單個(gè)簇中。然后將簇劃分為最不相似的簇。然后,該算法遞歸地劃分這些簇,直到獲得最優(yōu)解。分裂算法也稱為自上而下的聚類方法。

凝聚算法

這些算法首先將每個(gè)數(shù)據(jù)點(diǎn)分配到不同的聚類。然后,該算法遞歸地連接最相似的聚類,直到獲得最佳解決方案。凝聚算法也稱為自下而上的聚類方法。

凝聚聚類算法的示例

下面是五個(gè)數(shù)據(jù)點(diǎn)的距離矩陣。點(diǎn)之間的距離可以根據(jù)歐幾里得距離或曼哈頓距離或任何其他距離公式計(jì)算。距離矩陣始終是對(duì)稱矩陣,因?yàn)辄c(diǎn) X 和 Y 之間的距離與 Y 和 X 之間的距離相同?;诖司嚯x矩陣,這是凝聚(自下而上)聚類算法的一個(gè)示例。

步驟 1:在距離矩陣中,找到距離最小的兩個(gè)點(diǎn)。在上面的例子中,它們是點(diǎn) 3 和 5。它們之間的距離為 2。將它們放入單個(gè)簇中。

步驟 2:刪除點(diǎn) 3 和 5,將其替換為簇“35”,并創(chuàng)建一個(gè)新的距離矩陣。為此,需要計(jì)算所有數(shù)據(jù)點(diǎn)與簇“35”之間的距離。有多種方法可以確定此距離。

在此示例中,使用以下方法來測(cè)量距離:

點(diǎn) X 與簇“35”的距離 = 最小值 (距離 (X, 3), 距離 (X,5))?;诖朔椒ǜ碌木嚯x矩陣為:

步驟 3:重復(fù)步驟 2,直到所有數(shù)據(jù)點(diǎn)都分組為一個(gè)簇。在當(dāng)前示例中,需要六次迭代。下圖顯示了簇的形成。這種表示稱為樹狀圖。在此表示中,Y 軸表示兩個(gè)數(shù)據(jù)點(diǎn)之間的距離。例如,點(diǎn) 3 和 5 之間的距離為 2。

步驟 4:一旦所有數(shù)據(jù)點(diǎn)都聚類完畢,如上所示,決定需要保留多少個(gè)簇。這是一個(gè)艱難的決定,因?yàn)槊總€(gè)層次聚類算法最終都會(huì)產(chǎn)生一個(gè)簇。在層次聚類算法對(duì)數(shù)據(jù)進(jìn)行分區(qū)后,有幾種方法可用于確定最佳簇?cái)?shù)。

基于密度的聚類算法

這些算法基于這樣的理念:簇總是比其周圍的數(shù)據(jù)空間更密集。基于密度的算法從單個(gè)數(shù)據(jù)點(diǎn)開始,探索其鄰域內(nèi)的數(shù)據(jù)點(diǎn)。初始點(diǎn)鄰域內(nèi)的點(diǎn)包含在單個(gè)簇中。鄰域的定義因算法的實(shí)現(xiàn)而異。基于密度的噪聲應(yīng)用空間聚類 (DBSCAN) 是此類別中一種流行的聚類算法。

基于網(wǎng)格的聚類算法

基于網(wǎng)格的聚類算法與基于密度的聚類算法類似。數(shù)據(jù)空間被劃分為幾個(gè)較小的單元,稱為網(wǎng)格。每個(gè)數(shù)據(jù)點(diǎn)被分配到特定的網(wǎng)格單元。然后,該算法計(jì)算每個(gè)網(wǎng)格的密度。密度低于閾值的網(wǎng)格將被消除。接下來,該算法從相鄰的密集網(wǎng)格組中形成聚類。統(tǒng)計(jì)信息網(wǎng)格 (STING) 和任務(wù)中的聚類 (CLIQUE) 是兩種流行的基于網(wǎng)格的算法。

除了上面討論的算法外,聚類分析還包括一組基于模型的聚類、基于約束的聚類和異常值分析算法。

聚類分析算法的優(yōu)缺點(diǎn)

算法優(yōu)點(diǎn)缺點(diǎn)
基于分區(qū)的聚類分析算法簡單且可擴(kuò)展。適用于具有緊湊且分離良好的集群的數(shù)據(jù)集。需要提前定義聚類的數(shù)量。不適用于高維數(shù)據(jù)空間。易受噪聲和異常值的影響。穩(wěn)定性較差。
層次聚類分析算法不需要預(yù)先定義集群。計(jì)算所有可能聚類的完整層次結(jié)構(gòu)。良好的可視化方法,如樹狀圖。關(guān)于何時(shí)停止聚類尚不明確。高維數(shù)據(jù)空間的情況下性能下降。一旦集群分裂或合并完成,就很難糾正。
基于密度的聚類分析算法發(fā)現(xiàn)任意形狀和大小的簇。更好地處理數(shù)據(jù)中的噪聲和異常值。不需要預(yù)先指定聚類的數(shù)量。如果數(shù)據(jù)具有不同密度的聚類,則此方法可能會(huì)失敗。輸出高度依賴于輸入?yún)?shù)的初始設(shè)置。
基于網(wǎng)格的聚類分析算法無需計(jì)算距離。因此該算法很快。該算法可以處理大型數(shù)據(jù)集。集群邊界由水平或垂直邊界組成。它不包括對(duì)角線邊界

文章轉(zhuǎn)載自: What is cluster analysis?

上一篇:

DeepSpeed-Chat 代碼分析

下一篇:

API審核的核心概念是什么
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)