九種聚類演算法,探索無監督機器學習
今天,我想和大家分享一下機器學習中常見的無監督學習聚類方法
在無監督學習中,我們的數據並不帶有任何標籤,因此在無監督學習中要做的就是將這一系列無標籤的數據輸入到演算法中,然後讓演算法找到一些隱含在數據中的結構,透過下圖中的數據,可以找到的一個結構就是數據集中的點可以分成兩組分開的點集(簇),能夠圈出這些簇(cluster)的演算法,就叫做聚類演算法(clustering algorithm)。
聚類演算法的應用
- 市場分割:將資料庫中客戶的資訊根據市場進行不同的分組,從而實現對其分別銷售或根據不同的市場進行服務改進。
- 社群網路分析:透過郵件最常聯絡的人及其最常聯絡的人來找出一個緊密的群體。
- 組織電腦集群:在資料中心裡,電腦集群經常一起協同工作,可以用它來重新組織資源、重新佈局網路、優化資料中心以及通訊資料。
- 了解銀河系的組成:利用這些資訊來了解一些天文學的知識。
聚類分析的目標是將觀測值分成組別(「簇」),以便分配到同一簇的觀測值之間的成對差異往往小於不同簇中的觀測值之間的差異。聚類演算法分為三種不同的類型:組合演算法、混合建模和模式搜尋。
常見的幾種聚類演算法有:
- #K-Means Clustering
- Hierarchical Clustering
- #Agglomerative Clustering
- Affinity Propagation
Mean Shift Clustering
Bisecting K-MeansDBSCAN
OPTICS BIRCH
K-means
K-means 演算法是目前最受歡迎的聚類方法之一。 K-means 是由貝爾實驗室的 Stuart Lloyd 在 1957 年提出來的,最開始是用於脈衝編碼調製,直到 1982 年才將演算法對外公佈。 1965 年,Edward W.Forgy 發布了相同的演算法,因此 K-Means 有時被稱為 Lloyd-Forgy。
直觀理解K 均值演算法:
- 假如有一個無標籤的資料集(上圖左),並且我們想要將其分成兩個簇,現在執行K 均值演算法,具體操作如下:
第一步,隨機產生兩個點(因為想要將資料聚集成兩個類別)(上圖右),這兩個點叫做聚類中心(cluster centroids)。
第二步,進行 K 均值演算法的內循環。 K 均值演算法是一個迭代演算法,它會做兩件事情,第一個是簇分配(cluster assignment),第二個是行動聚類中心(move centroid)。
內循環的第一步是要進行簇分配,也就是說,遍歷每一個樣本,再根據每一個點到聚類中心距離的遠近將其分配給不同的聚類中心(離誰近分配給誰),對於本例而言,就是遍歷資料集,將每個點染成紅色或藍色。
K-Means演算法的優點:
#簡單易懂,計算速度較快,適用於大規模資料集。
缺點:
- #例如對於非球形簇的處理能力較差,容易受到初始簇心的選擇影響,需要預先指定簇的數量K等。
- 此外,當資料點之間存在雜訊或離群點時,K-Means演算法可能會將它們指派到錯誤的簇中。
Hierarchical Clustering
層次聚類是依照某個層次對樣本集進行聚類的運算。這裡的層次指的實際上是某種距離的定義
聚類的最終目的是減少分類的數量,因此在行為上類似於從葉子節點逐步靠近的樹狀圖過程,這種行為也被稱為「自下而上」
更通俗的,層次聚類是將初始化的多個類別簇看做樹節點,每一步迭代,都是將兩兩相近的類簇合併成一個新的大類簇,如此反复,直至最終只剩下一個類簇(根節點)。
層次聚類策略分為兩種基本範式:聚集型(自下而上)和分裂型(自上而下)。
與層次聚類相反的是分裂聚類,也稱為DIANA(Divise Analysis),其行為過程為「自上而下」
K-means演算法的結果取決於選擇搜尋的聚類數量和起始配置的分配。而相反,層次聚類方法則不需要這樣的規範。相反,它們要求使用者根據兩組觀察值之間的配對差異性來指定(不相交)觀察組之間的差異性測量。顧名思義,層次聚類方法產生一個層次結構表示,其中每個層次的群集都是透過合併下一個較低層次的群集而創建的。在最低級別,每個集群包含一個觀察值。在最高級別,只有一個叢集包含所有的資料
優點:
- 距離和規則的相似度容易定義,限制少;
- 不需要預先制定聚類數;
- 可以發現類別的層次關係;
- 可以聚類成其它形狀。
缺點:
- #計算複雜度太高;
##奇異值也能產生很大影響;演算法很可能會聚類成鏈狀。
- Agglomerative Clustering
- 重寫後的內容為:凝聚層次聚類(Agglomerative Clustering)是一種自底向上的聚類演算法,它將每個資料點看作一個初始簇,並逐步合併它們以形成更大的簇,直到滿足停止條件。在這個演算法中,每個資料點最初被視為一個單獨的簇,然後逐步合併簇,直到所有資料點合併為一個大簇 ##優點:
適用於不同形狀和大小的簇,且不需要事先指定聚類數目。
- 此演算法也可以輸出聚類層次結構,以便於分析和視覺化。
- 缺點:
#計算複雜度較高,尤其是在處理大規模資料集時,需要消耗大量的運算資源和儲存空間。
此演算法對初始簇的選擇也較為敏感,可能會導致不同的聚類結果。 ############Affinity Propagation#########修改後的內容:親和傳播演算法(AP)通常被翻譯為親和力傳播演算法或鄰近傳播演算法##### ########Affinity Propagation 是一種基於圖論的聚類演算法,旨在識別資料中的"exemplars"(代表點)和"clusters"(簇)。與 K-Means 等傳統聚類演算法不同,Affinity Propagation 不需要事先指定聚類數目,也不需要隨機初始化簇心,而是透過計算資料點之間的相似性得出最終的聚類結果。 ######
優點:
- 不需要製定最終聚類族的數量
- 已有的資料點作為最終的聚類中心,而不是新產生一個簇中心。
- 模型對資料的初始值不敏感。
- 對初始相似度矩陣資料的對稱性沒有要求。
- 比較與 k-centers 聚類方法,其結果的平方差誤差較小。
缺點:
- #該演算法的計算複雜度較高,需要大量的儲存空間和運算資源;
- 對於雜訊點和離群點的處理能力較弱。
Mean Shift Clustering
平移聚類是一種基於密度的非參數聚類演算法,其基本思想是透過尋找資料點密度最大的位置(稱為“局部最大值”或“高峰”),來識別資料中的群集。此演算法的核心在於對每個資料點進行局部密度估計,並將密度估計結果用於計算資料點移動的方向和距離
優點:
- 不需要指定簇的數目,而且對於形狀複雜的簇也有很好的效果。
- 演算法也能夠有效地處理雜訊資料。
缺點:
- #計算複雜度較高,尤其是在處理大規模資料集時,需要消耗大量的運算資源和儲存空間;
- 此演算法也對初始參數的選擇較為敏感,需要進行參數調整與最佳化。
Bisecting K-Means
Bisecting K-Means 是基於K-Means 演算法的層次聚類演算法,其基本思想是將所有數據點分成一個簇,然後將該簇分成兩個子簇,並對每個子簇分別應用K-Means 演算法,重複執行這個過程,直到達到預定的聚類數目為止。
演算法首先將所有資料點視為初始簇,然後對該簇應用K-Means演算法,將該簇分成兩個子簇,併計算每個子簇的誤差平方和(SSE)。然後,選擇誤差平方和最大的子簇,並將其再次分成兩個子簇,重複執行這個過程,直到達到預定的聚類數目為止。
優點:
- #具有較高的準確度和穩定性,能夠有效地處理大規模資料集,且不需要指定初始聚類數目。
- 此演算法也能夠輸出聚類層次結構,以便於分析和視覺化。
缺點:
- #計算複雜度較高,尤其是在處理大規模資料集時,需要消耗大量的運算資源和儲存空間。
- 此外演算法對初始簇的選擇也比較敏感,可能會導致不同的聚類結果。
DBSCAN
基於密度的空間聚類演算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種典型的具有雜訊的聚類別方法
密度的方法具有不依賴距離的特點,而是依賴密度。因此,它能夠克服基於距離的演算法只能發現「球形」聚集的缺點
DBSCAN演算法的核心思想是:對於一個給定的數據點,如果它的密度達到一定的閾值,則它屬於一個簇中;否則,它被視為雜訊點。
優點:
- 這類演算法能克服基於距離的演算法只能發現「類別圓形」(凸)的聚類的缺點;
- 可發現任意形狀的聚類,且對雜訊資料不敏感;
- 不需要指定類別的數目cluster;
- 演算法中只有兩個參數,掃描半徑(eps)和最小包含點數(min_samples)。
缺點:
- #計算複雜度,不進行任何最佳化時,演算法的時間複雜度是O(N^{2}),通常可利用R-tree,k-d tree, ball;
- tree索引來加速計算,將演算法的時間複雜度降為O(Nlog(N));
- 受eps影響較大。在類別中的資料分佈密度不均勻時,eps較小時,密度小的cluster會被劃分成多個性質相似的cluster;eps較大時,會使得距離較近且密度較大的cluster被合併成一個cluster。在高維度資料時,因為維數災難問題,eps的選取比較困難;
- #依賴距離公式的選取,由於維度災害,距離的量測標準不重要;
- 不適合資料集集中密度差異很大的,因為eps和metric選取很困難。
OPTICS
OPTICS(Ordering Points To Identify the Clustering Structure)是一種基於密度的聚類演算法,它能夠自動確定簇的數量,同時也能夠發現任意形狀的簇,並且能夠處理雜訊資料
OPTICS 演算法的核心思想是根據給定資料點計算其與其他點之間的距離,以確定其在密度上的可及性,並建立一個基於密度的距離圖。然後,透過掃描該距離圖,自動確定簇的數量,並對每個簇進行分割
# 優點:
- 能夠自動確定簇的數量,並且能夠處理任意形狀的簇,並且能夠有效地處理雜訊資料。
- 此演算法也能夠輸出聚類層次結構,以便於分析和視覺化。
缺點:
- #計算複雜度較高,尤其是在處理大規模資料集時,需要消耗大量的運算資源和儲存空間。
- 此演算法對於密度差異較大的資料集,可能會導致聚類效果不佳。
BIRCH
BIRCH(平衡迭代降低和層次聚類)是一種基於層次聚類的聚類演算法,它能夠高效地處理大規模資料集,並且對於任何形狀的簇都能夠取得良好的效果
BIRCH演算法的核心思想是:透過對資料集進行分層聚類,逐步減小資料規模,最終得到簇結構。 BIRCH演算法採用類似B樹的結構,稱為CF樹,它可以快速地插入和刪除子簇,並且可以自動平衡,從而確保簇的質量和效率
優點:
- 能夠快速處理大規模資料集,並且對於任意形狀的簇都有較好的效果。
- 此演算法對於雜訊資料和離群點也有較好的容錯性。
缺點:
- #對於密度差異較大的資料集,可能會導致聚類效果不佳;
- 對於高維度資料集的效果也不如其他演算法。
以上是九種聚類演算法,探索無監督機器學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

圖像標註是將標籤或描述性資訊與圖像相關聯的過程,以賦予圖像內容更深層的含義和解釋。這個過程對於機器學習至關重要,它有助於訓練視覺模型以更準確地識別圖像中的各個元素。透過為圖像添加標註,使得電腦能夠理解圖像背後的語義和上下文,從而提高對圖像內容的理解和分析能力。影像標註的應用範圍廣泛,涵蓋了許多領域,如電腦視覺、自然語言處理和圖視覺模型具有廣泛的應用領域,例如,輔助車輛識別道路上的障礙物,幫助疾病的檢測和診斷透過醫學影像識別。本文主要推薦一些較好的開源免費的圖片標註工具。 1.Makesens

在機器學習和資料科學領域,模型的可解釋性一直是研究者和實踐者關注的焦點。隨著深度學習和整合方法等複雜模型的廣泛應用,理解模型的決策過程變得尤為重要。可解釋人工智慧(ExplainableAI|XAI)透過提高模型的透明度,幫助建立對機器學習模型的信任和信心。提高模型的透明度可以透過多種複雜模型的廣泛應用等方法來實現,以及用於解釋模型的決策過程。這些方法包括特徵重要性分析、模型預測區間估計、局部可解釋性演算法等。特徵重要性分析可以透過評估模型對輸入特徵的影響程度來解釋模型的決策過程。模型預測區間估計

本文將介紹如何透過學習曲線來有效辨識機器學習模型中的過度擬合和欠擬合。欠擬合和過擬合1、過擬合如果一個模型對資料進行了過度訓練,以至於它從中學習了噪聲,那麼這個模型就被稱為過擬合。過度擬合模型非常完美地學習了每一個例子,所以它會錯誤地分類一個看不見的/新的例子。對於一個過度擬合的模型,我們會得到一個完美/接近完美的訓練集分數和一個糟糕的驗證集/測試分數。略有修改:"過擬合的原因:用一個複雜的模型來解決一個簡單的問題,從資料中提取雜訊。因為小資料集作為訓練集可能無法代表所有資料的正確表示。"2、欠擬合如

1950年代,人工智慧(AI)誕生。當時研究人員發現機器可以執行類似人類的任務,例如思考。後來,在1960年代,美國國防部資助了人工智慧,並建立了實驗室進行進一步開發。研究人員發現人工智慧在許多領域都有用武之地,例如太空探索和極端環境中的生存。太空探索是對宇宙的研究,宇宙涵蓋了地球以外的整個宇宙空間。太空被歸類為極端環境,因為它的條件與地球不同。要在太空中生存,必須考慮許多因素,並採取預防措施。科學家和研究人員認為,探索太空並了解一切事物的現狀有助於理解宇宙的運作方式,並為潛在的環境危機

通俗來說,機器學習模型是一種數學函數,它能夠將輸入資料映射到預測輸出。更具體地說,機器學習模型是一種透過學習訓練數據,來調整模型參數,以最小化預測輸出與真實標籤之間的誤差的數學函數。在機器學習中存在多種模型,例如邏輯迴歸模型、決策樹模型、支援向量機模型等,每種模型都有其適用的資料類型和問題類型。同時,不同模型之間存在著許多共通性,或者說有一條隱藏的模型演化的路徑。將聯結主義的感知機為例,透過增加感知機的隱藏層數量,我們可以將其轉化為深度神經網路。而對感知機加入核函數的話就可以轉換為SVM。這一

C++中機器學習演算法面臨的常見挑戰包括記憶體管理、多執行緒、效能最佳化和可維護性。解決方案包括使用智慧指標、現代線程庫、SIMD指令和第三方庫,並遵循程式碼風格指南和使用自動化工具。實作案例展示如何利用Eigen函式庫實現線性迴歸演算法,有效地管理記憶體和使用高效能矩陣操作。

機器學習是人工智慧的重要分支,它賦予電腦從數據中學習的能力,並能夠在無需明確編程的情況下改進自身能力。機器學習在各個領域都有廣泛的應用,從影像辨識和自然語言處理到推薦系統和詐欺偵測,它正在改變我們的生活方式。機器學習領域存在著多種不同的方法和理論,其中最具影響力的五種方法被稱為「機器學習五大派」。這五大派分別為符號派、聯結派、進化派、貝葉斯派和類推學派。 1.符號學派符號學(Symbolism),又稱符號主義,強調利用符號進行邏輯推理和表達知識。該學派認為學習是一種逆向演繹的過程,透過現有的

MetaFAIR聯合哈佛優化大規模機器學習時所產生的資料偏差,提供了新的研究架構。據所周知,大語言模型的訓練常常需要數月的時間,使用數百甚至上千個GPU。以LLaMA270B模型為例,其訓練總共需要1,720,320個GPU小時。由於這些工作負載的規模和複雜性,導致訓練大模型存在著獨特的系統性挑戰。最近,許多機構在訓練SOTA生成式AI模型時報告了訓練過程中的不穩定情況,它們通常以損失尖峰的形式出現,例如Google的PaLM模型訓練過程中出現了多達20次的損失尖峰。數值偏差是造成這種訓練不準確性的根因,
