大俠幸會,在下全網同名「演算法金」 0 基礎轉 AI 上岸,多個演算法賽 Top 「日更萬日,讓更多人享受智慧樂趣」
接微*公號往期文章:10 種頂流聚類演算法,附 Python 實現
聚類分析概述
聚類分析的定義與意義
聚類分析(Clustering Analysis)是一種將資料物件分成多個簇(Cluster)的技術,使得同一簇內的物件具有較高的相似性,而不同簇之間的物件具有較大的差異性。這種方法在無監督學習(Unsupervised Learning)中廣泛應用,常用於資料預處理、模式識別、影像處理和市場分析等領域
透過聚類分析,可以有效地發現資料中的結構和模式,為進一步的資料分析和挖掘提供基礎。例如,在市場分析中,聚類分析可以幫助企業將客戶群體進行細分,從而制定更有針對性的營銷策略
常見聚類演算法概覽
聚類演算法種類繁多,常見的主要有以下幾種:
- K-均值(K-Means):一種基於劃分的聚類方法,透過迭代最佳化目標函式將資料分為K個簇。它具有計算簡單、效率高等優點,但對初始值敏感,容易陷入區域性最優
- 層次聚類(Hierarchical Clustering):一種基於層次結構的聚類方法,包括凝聚式和分裂式兩種。凝聚式層次聚類從每個物件開始逐步合併,分裂式層次聚類從整個資料集開始逐步分裂。它可以生成樹狀結構(樹狀圖),但計算複雜度較高
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise):一種基於密度的聚類方法,透過定義核心點、邊界點和噪聲點來識別簇。它能有效處理噪聲和發現任意形狀的簇,但對引數選擇較為敏感
聚類分析在資料科學中的應用
聚類分析在資料科學中有廣泛的應用,以下是一些典型場景:
- 客戶細分:透過對客戶進行聚類分析,企業可以將客戶分成不同的群體,從而制定更加精準的營銷策略
- 影像分割:在影像處理領域,聚類分析可以用於影像分割,將影像分成具有相似畫素特徵的區域
- 異常檢測:聚類分析可以幫助識別資料中的異常點,這在金融欺詐檢測、網路入侵檢測等方面有重要應用
- 文字聚類:在自然語言處理領域,聚類分析可以用於文字聚類,將具有相似主題的文件分在一起,方便後續的資訊檢索和推薦系統
更多內容,見演算法知識直達星球:https://t.zsxq.com/ckSu3
K-均值聚類方法
定義與基本原理
K-均值(K-Means)是一種常見的劃分式聚類演算法,其目標是將資料集分成 ( K ) 個簇,使得每個簇內的資料點與該簇的中心點(質心)之間的距離平方和最小。該演算法的基本原理是透過迭代最佳化,逐步調整簇中心位置,直到簇中心不再發生變化或達到預設的迭代次數
演算法步驟
K-均值演算法的具體步驟如下:
- 隨機選擇 ( K ) 個初始質心
- 將每個資料點分配到最近的質心所在的簇
- 計算每個簇的質心,即該簇中所有資料點的平均值
- 檢查質心是否發生變化,若發生變化,則重複步驟2和3,直到質心不再變化或達到預設的迭代次數
K值選擇與初始中心問題
K值選擇是K-均值聚類中的一個關鍵問題。通常可以透過肘部法則(Elbow Method)來選擇合適的 ( K ) 值。肘部法則透過繪製不同 ( K ) 值對應的聚類誤差平方和(SSE),選擇拐點處的 ( K ) 值
初始中心的選擇對K-均值演算法的收斂速度和聚類效果有重要影響。常用的改進方法是K-means++,它透過一種機率分佈方法選擇初始質心,能有效提高演算法效能
優缺點分析
優點:
- 演算法簡單,計算效率高,適用於大規模資料集
- 易於實現和理解
缺點:
- 對初始質心敏感,可能陷入區域性最優
- 需要預先指定 ( K ) 值
- 不能處理非凸形狀的簇和具有不同大小的簇
- 對噪聲和異常值敏感
適用場景及例項
K-均值聚類適用於以下場景:
- 資料集規模較大,且簇的形狀接近凸形
- 需要快速獲取聚類結果,用於初步資料分析
- 希望對簇進行簡單的解釋和視覺化
更多內容,見微*公號往期文章:再見!!!K-means
層次聚類方法
定義與基本原理
層次聚類(Hierarchical Clustering)是一種基於層次結構的聚類方法。它透過構建樹狀的簇結構,逐層合併或分裂資料點,形成一個層次化的簇結構。層次聚類主要有兩種型別:凝聚式(Agglomerative)和分裂式(Divisive)。
- 凝聚式聚類:從每個資料點開始,將最近的兩個簇逐步合併,直到所有資料點都被合併到一個簇中。
- 分裂式聚類:從整個資料集開始,將資料點逐步分裂成更小的簇,直到每個資料點都成為一個單獨的簇。
演算法步驟
以凝聚式層次聚類為例,演算法步驟如下:
- 初始化:將每個資料點作為一個單獨的簇
- 計算簇之間的相似度矩陣
- 合併最相似的兩個簇,更新相似度矩陣
- 重複步驟3,直到所有資料點合併到一個簇中
分裂式與凝聚式聚類
- 分裂式聚類:從整個資料集開始,透過遞迴地分裂資料集,形成樹狀結構。
- 凝聚式聚類:從每個資料點開始,透過遞迴地合併最近的簇,形成樹狀結構。
兩者的主要區別在於聚類過程的方向,分裂式自頂向下,凝聚式自底向上。
優缺點分析
優點:
- 無需預先指定簇數 ( K )
- 能夠生成樹狀結構(樹狀圖),方便觀察不同層次的聚類結果
- 對任意形狀的簇有較好的適應性
缺點:
- 計算複雜度高,尤其是大規模資料集
- 對噪聲和異常值敏感
- 聚類結果不可逆,一旦合併或分裂無法撤銷
適用場景及例項
層次聚類適用於以下場景:
- 需要觀察不同層次的聚類結果
- 資料集規模較小,計算複雜度可接受
- 希望獲得更直觀的聚類結構
抱個拳,送個禮
點選 ↑ 領取
DBSCAN聚類方法
定義與基本原理
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基於密度的聚類方法,透過識別資料點的密度連線區域來形成簇。DBSCAN不需要預先指定簇的數量,能夠識別任意形狀的簇,並且對噪聲和異常點有較好的處理能力
DBSCAN的基本原理是定義兩個引數:( \varepsilon ) (Epsilon,鄰域半徑)和 ( \text{minPts} ) (最小點數),以確定簇的密度。資料點分為三類:
- 核心點(Core Point):在其 ( \varepsilon ) 鄰域內包含至少 ( \text{minPts} ) 個點的點
- 邊界點(Border Point):在其 ( \varepsilon ) 鄰域內包含少於 ( \text{minPts} ) 個點,但在核心點鄰域內的點
- 噪聲點(Noise Point):既不是核心點,也不是邊界點的點
演算法步驟
DBSCAN 演算法的具體步驟如下:
- 隨機選擇一個未訪問的資料點
- 檢查該點的 ( \varepsilon ) 鄰域,如果鄰域內的資料點數量大於等於 ( \text{minPts} ),則將該點標記為核心點,並將鄰域內的所有點加入同一簇
- 對鄰域內的點進行遞迴擴充套件,直到所有核心點的鄰域都被訪問
- 對所有未標記的點,如果其屬於任何一個核心點的鄰域,則標記為邊界點;否則,標記為噪聲點
- 重複上述步驟,直到所有點都被訪問
核心點、邊界點與噪聲點
- 核心點:鄰域內包含至少 ( \text{minPts} ) 個點
- 邊界點:鄰域內少於 ( \text{minPts} ) 個點,但在核心點鄰域內
- 噪聲點:既不是核心點,也不是邊界點的點
優缺點分析
優點:
- 無需預先指定簇數 ( K )
- 能處理任意形狀的簇
- 對噪聲和異常點有較好的處理能力
缺點:
- 對引數 ( \varepsilon ) 和 ( \text{minPts} ) 較為敏感
- 計算複雜度較高,不適合大規模資料集
適用場景及例項
DBSCAN 聚類適用於以下場景:
- 資料集具有任意形狀的簇
- 存在噪聲和異常點,需要識別並處理
- 希望在不預先指定簇數的情況下進行聚類
[ 抱個拳,總個結 ]
聚類方法比較與應用
三種聚類方法的比較
在前面章節中,我們詳細介紹了K-均值、層次聚類和DBSCAN這三種聚類方法。下面將從多個維度對這三種方法進行比較。
如何選擇適合的聚類方法
在實際應用中,選擇適合的聚類方法需要考慮以下因素:
- 資料集規模:對於大規模資料集,優先選擇計算複雜度較低的方法,如K-均值。
- 簇的形狀:如果資料中的簇形狀不規則或具有不同的密度,優先選擇DBSCAN或層次聚類。
- 噪聲和異常點:如果資料集中存在較多噪聲和異常點,DBSCAN是較好的選擇,因為它能夠有效處理噪聲。
- 計算資源:層次聚類的計算複雜度較高,適用於小規模資料集。在計算資源有限的情況下,可以選擇K-均值。
- 對簇數的預知:如果不能預先確定簇的數量,可以選擇層次聚類或DBSCAN。
透過以上內容,我們對K-均值、層次聚類和DBSCAN這三種聚類方法進行了解析,並比較了它們的優缺點和適用場景。希望這些內容能幫助大俠們在實際資料分析中選擇合適的聚類方法,提高資料處理和分析的效果。
更多內容見微*公號往期文章:10 種頂流聚類演算法,附 Python 實現
- 科研為國分憂,創新與民造福 -
日更時間緊任務急,難免有疏漏之處,還請大俠海涵
內容僅供學習交流之用,部分素材來自網路,侵聯刪
[ 演算法金,碎碎念 ]
基礎還是很重要的
能一步一步往前走是很幸福的
畢竟,不確定是常態
演算法知識直達星球:https://t.zsxq.com/ckSu3
全網同名,日更萬日,讓更多人享受智慧樂趣
如果覺得內容有價值,煩請大俠多多 分享、在看、點贊,助力演算法金又猛又持久、很黃很 BL 的日更下去;
同時邀請大俠 關注、星標 演算法金,圍觀日更萬日,助你功力大增、笑傲江湖