首先給大家介紹一個很好用的學習地址:https://cloudstudio.net/columns
聚類是一種無監督學習方法,其基本假設是資料集未經過標記,或者輸入資料與預定義的輸出之間並不存在直接的對應關係。聚類的主要目標是將具有相似特徵的資料點歸類到同一組中,這一組通常被稱為“簇”。
聚類結果的質量和有效性往往依賴於資料點之間的距離度量,進而影響到分組的準確性和合理性。透過聚類分析,研究人員能夠發現資料的內在結構,進而為後續的資料處理和決策提供有價值的參考。
聚類入門
在我們的日常生活中,當我們面臨需要整理一堆家人的衣物時,實際上就是在進行一種聚類的過程🧦👕👖🩲。我們根據衣物的種類、顏色、大小等特徵,將相似的衣物歸類到一起,以便於整理和存放。這一簡單的生活場景與資料科學中的聚類方法有著密切的聯絡。在資料科學領域,聚類被廣泛應用於分析使用者的偏好、識別市場趨勢或確定任何未標記資料集的潛在特徵。
透過將相似的資料點分組,聚類幫助我們更清晰地理解複雜的資訊,從而在某種程度上使我們能夠更好地處理雜亂的狀態。
詞彙瞭解
聚類,簡單來說,就是將資料進行分類或歸類的過程。然而,如何有效地進行這種歸類是各類演算法需要深入研究和考慮的重點。在這個過程中,我們會遇到許多專有名詞,這些術語的理解對於掌握聚類方法和演算法至關重要。
“轉導”與“歸納”
轉導推理源自觀察到的對映到特定測試用例的訓練用例。歸納推理源自對映到一般規則的訓練案例,然後才應用於測試案例。聽不懂沒關係,我來舉個例子。
簡單舉個例子來說明轉導推理和歸納推理的區別。
首先了解下歸納推理:
- 你觀察到三隻天鵝:一隻是白色的,另一隻是白色的,第三隻是白色的。
- 你基於這些觀察得出結論:“所有天鵝都是白色的”。
在這個過程中,你從具體的觀察(具體的白色天鵝)推匯出一個一般性的結論(所有天鵝都是白色的)。但是,這個結論並不一定正確,因為你沒有觀察到所有的天鵝。
其次是轉導推理:
- 你知道一個一般性原則:“所有天鵝都是鳥”。
- 你還知道:“這隻動物是天鵝”。
- 基於這兩個前提,你可以得出結論:“這隻動物是鳥”。
在這個過程中,你從一般性的規則(所有天鵝都是鳥)推匯出一個特定的結論(這隻天鵝是鳥)。這個結論是邏輯上必然的,只要前提成立。
所以說簡單來說就是:
- 歸納是從多個具體例項得出一個一般規則,可能存在例外。
- 轉導是基於一般規則推匯出特定例項的結論,邏輯上必然。
“非平面”與“平面”幾何
平面幾何是在二維平面上(例如紙面)進行的幾何圖形。基本的物件包括點、線、面、角、三角形、四邊形等。如:在平面上繪製一個三角形,測量邊長和角度,使用歐幾里得幾何的規則,如勾股定理。
非平面幾何研究的是在三維空間或更高維空間中的幾何特性。它包括非歐幾里得幾何,如橢圓幾何和雙曲幾何。如:在球體表面上研究幾何,像是測量大圓(在球面上的“直線”),例如地球上的最短路徑(航線)。
幾何與機器學習有著密切的關係,資料常常以幾何形狀的形式存在。例如,點雲資料、影像和影片可以視為在高維空間中的點。比如:在處理影像、社交網路等非歐幾里得資料時,可能需要使用非歐幾里得幾何的概念來分析資料的結構和關係,再或者透過幾何方式,可以衡量不同資料點之間的相似性,從而幫助分類和聚類任務。
聚類和距離矩陣
聚類由它們的距離矩陣定義,例如點之間的距離。這個距離可以透過幾種方式來測量。歐幾里得聚類由點值的平均值定義,非歐式距離指的是“聚類中心”,即離其他點最近的點。我來句幾個例子講解一下啥意思。
距離矩陣:距離矩陣是一個表格,記錄了資料集中每對點之間的距離。行和列表示資料點,矩陣中的每個元素表示對應點之間的距離。
歐幾里得距離:這是最常用的距離測量方法,適用於計算在二維或三維空間中點之間的直線距離。在聚類中,歐幾里得聚類的“質心”是指所有點的平均位置。你可以想象質心是每個簇的“中心”。
非歐幾里得距離:指不遵循歐幾里得幾何規則的距離計算方式。例如,曼哈頓距離、切比雪夫距離等。這些距離通常反映了不同的空間特性。
示例再說明,假設我們有以下資料點:
- 點 P1: (1, 2)
- 點 P2: (2, 3)
- 點 P3: (5, 8)
- 點 P4: (7, 9)
歐幾里得聚類:
- 質心可能是計算出來的某個點,比如 (3.75, 5.5),這個點不一定是資料集中存在的點。
非歐幾里得聚類:
- 假設我們選擇點 P2 (2, 3) 作為中心,因為它與其他點的距離較小。這個中心是資料集中真實存在的點。
約束聚類
約束聚類是一種結合了無監督學習和半監督學習的方法。它透過引入一些額外的約束條件來指導聚類過程,從而提高聚類的質量和效果。以下是一些關鍵點:
約束的型別:
- 必須連結(must-link):如果兩個資料點被標記為“必須連結”,那麼在聚類時,這兩個點必須被分到同一個簇中。
- 無法連結(cannot-link):如果兩個資料點被標記為“無法連結”,那麼在聚類時,這兩個點必須被分到不同的簇中。
舉例分析一下,假設我們在聚類一組物品,其中包括:
- 圓形塑膠玩具
- 方形塑膠玩具
- 三角形金屬玩具
- 餅乾(可能是紙製玩具或其他材質)
在沒有約束的情況下,演算法可能會將圓形和方形玩具分到同一個簇中,而將三角形玩具和餅乾分到另一個簇,因為演算法僅依賴於它們的特徵。
但是,如果我們設定約束條件——“所有物品必須由塑膠製成”,演算法將只能考慮圓形和方形塑膠玩具,因此它們會被正確聚到一起,而其他物品則不會干擾這個過程。
所以約束聚類透過提供指導性的資訊(必須連結或無法連結),使得聚類演算法能夠更有效地處理資料,減少不相關物品的聚類,從而提升結果的質量。
密度
在檢查時,每個聚類中的點之間的距離可能或多或少地密集或“擁擠”,因此需要使用適當的聚類方法分析這些資料。
比如K-Means 適合用於簇的形狀比較規則且密度較為均勻的資料集。對噪聲敏感,嘈雜資料可能會干擾聚類結果。在不同密度的聚類中效果不佳。HDBSCAN 特別適合於資料密度不均勻的情況,可以自動識別和排除噪聲。
因此,在選擇聚類演算法時,根據資料的特點和需求選擇合適的方法非常重要。
常用聚類演算法
聚類演算法的種類繁多,超過 100 種之多,其適用性通常取決於具體資料的性質和分析目標。為了深入理解這些演算法的特點,我們將重點介紹兩種常見的聚類方法:層次聚類和質心聚類。
接下來,我們將透過具體的例子來闡述這兩種演算法的特點及其在實際應用中的效果。
層次聚類
層次聚類是一種透過建立資料點之間的層次關係來進行聚類的方法。它的主要思想是將資料點逐步合併成簇,形成一個樹狀結構(樹形圖或 dendrogram)。
主要方法有兩種,上面的圖例則是自下而上的方法:
- 自下而上(凝聚法,Agglomerative):
- 每個資料點開始時被視為一個獨立的簇。
- 在每一步中,找到兩個最近的簇並將它們合併為一個新的簇。
- 重複這個過程,直到所有點都合併為一個簇。
- 自上而下(分裂法,Divisive):
- 所有資料點開始時視為一個簇。
- 逐步將簇分裂成更小的簇。
- 重複這個過程,直到每個資料點成為一個獨立的簇。
如果還是沒懂,我們再舉一些例子,假設我們有一組水果資料,包括蘋果、橙子、香蕉和草莓。使用層次聚類,首先每個水果作為一個單獨的簇,然後根據水果之間的相似性逐步合併,最終形成一個樹狀結構,展示出水果之間的關係。例如,蘋果和橙子可能先合併,因為它們都是柑橘類,而香蕉和草莓則可能在之後的合併中形成新的簇。
質心聚類
質心聚類是一種基於質心(簇的中心點)來進行聚類的方法,最常用的例子就是 K-Means 演算法。
K-Means 演算法步驟如下:
- 選擇簇的數量 (k)。
- 隨機選擇 (k) 個初始質心。
- 將每個資料點分配到最近的質心,形成 (k) 個簇。
- 計算每個簇的新質心,即簇內所有點的平均位置。
- 重複步驟 3 和 4,直到質心不再變化(收斂)。
也舉一些例子吧,假設我們有一組客戶資料,基於他們的購買行為進行聚類。使用 K-Means,選擇 k=3,可以將客戶分為三類:頻繁購買者、偶爾購買者和不活躍客戶。演算法會根據每類客戶的購買習慣計算質心,並調整每個客戶的歸屬,最終得到三個明確的客戶群體。
這兩類演算法也有自己的侷限性,層次聚類適合小規模資料集,能夠生成資料的層次關係,易於視覺化,但計算複雜度較高。質心聚類計算效率高,適合大規模資料集,但需要事先指定簇的數量,且對異常值敏感。
總結
在本文中,我們探討了聚類作為一種無監督學習方法的重要性與應用。聚類不僅幫助我們識別資料中的內在結構,還能在實際生活中提供靈感,例如我們日常整理衣物時的歸類過程。透過理解距離矩陣、約束聚類及密度等概念,我們能夠更準確地進行資料分析,並選擇適合的聚類演算法。無論是層次聚類還是質心聚類,每種方法都有其獨特的優勢和適用場景。
今天的前置知識就到此為止,希望大家能夠迅速掌握這些基本概念,為後續學習打下良好的基礎。在下一章節中,我們將深入探討如何對資料進行聚類分析,期待與大家一起探索這一重要的主題。
我是努力的小雨,一名 Java 服務端碼農,潛心研究著 AI 技術的奧秘。我熱愛技術交流與分享,對開源社群充滿熱情。同時也是一位騰訊雲創作之星、阿里雲專家博主、華為云云享專家、掘金優秀作者。
💡 我將不吝分享我在技術道路上的個人探索與經驗,希望能為你的學習與成長帶來一些啟發與幫助。
🌟 歡迎關注努力的小雨!🌟