数据分析方法-聚类算法
文章目錄
- 一、定義
- 二、聚類、分類區別分類
- 三、聚類常用算法
- 1.劃分聚類 k-means、k-medoids、k-modes、k-medians、kernel k-means
- 2.層次聚類 Agglomerative 、divisive、BIRCH、ROCK、Chameleon
- 3.密度聚類 DBSCAN、OPTICS
- 5.模型聚類 GMM
- 6.圖聚類 Spectral Clustering(譜聚類)
一、定義
聚類(Clustering)就是一種尋找數據之間內在結構的技術。聚類把全體數據實例組織成一些相似組,而這些相似組被稱作簇。處于相同簇中的數據實例彼此相同,處于不同簇中的實例彼此不同。數據之間的相似性是通過定義一個距離或者相似性系數來判別的。
二、聚類、分類區別分類
| 是一種有監督式的學習過程 | 是一種無監督式的學習過程 |
| 其初始和結果都是有標簽式標記 | 其初始和結果無標簽式標記 |
| 其結果是有意義的分類 | 其結果無意義的分類 |
| 是示例式學習 | 是觀察式學習 |
三、聚類常用算法
1.劃分聚類 k-means、k-medoids、k-modes、k-medians、kernel k-means
基于劃分的聚類方法是一種自頂向下的方法,對于給定的 n 個數據對象的數據集 D,將數據對象組織成 k(k≤n) 個分區,其中,每個分區代表一個簇。示意圖:
2.層次聚類 Agglomerative 、divisive、BIRCH、ROCK、Chameleon
基于層次的聚類方法是指對給定的數據進行層次分解,直到滿足某種條件為止。該算法根據層次分解的順序分為自底向上法和自頂向下法,即凝聚式層次聚類算法和分裂式層次聚類算法。
1)自底向上法。
首先,每個數據對象都是一個簇,計算數據對象之間的距離,每次將距離最近的點合并到同一個簇。然后,計算簇與簇之間的距離,將距離最近的簇合并為一個大簇。不停地合并,直到合成了一個簇,或者達到某個終止條件為止。
簇與簇的距離的計算方法有最短距離法、中間距離法、類平均法等,其中,最短距離法是將簇與簇的距離定義為簇與簇之間數據對象的最短距離。自底向上法的代表算法是AGNES(AGglomerativeNESing)算法。
2)自頂向下法。
該方法在一開始所有個體都屬于一個簇,然后逐漸細分為更小的簇,直到最終每個數據對象都在不同的簇中,或者達到某個終止條件為止。自頂向下法的代表算法是 DIANA(DivisiveANAlysis)算法。
基于層次的聚類算法的主要優點包括,距離和規則的相似度容易定義,限制少,不需要預先制定簇的個數,可以發現簇的層次關系。基于層次的聚類算法的主要缺點包括,計算復雜度太高,奇異值也能產生很大影響,算法很可能聚類成鏈狀。
3.密度聚類 DBSCAN、OPTICS
基于密度的聚類方法的主要目標是尋找被低密度區域分離的高密度區域。與基于距離的聚類算法不同的是,基于距離的聚類算法的聚類結果是球狀的簇,而基于密度的聚類算法可以發現任意形狀的簇。
基于密度的聚類方法是從數據對象分布區域的密度著手的。如果給定類中的數據對象在給定的范圍區域中,則數據對象的密度超過某一閾值就繼續聚類。
這種方法通過連接密度較大的區域,能夠形成不同形狀的簇,而且可以消除孤立點和噪聲對聚類質量的影響,以及發現任意形狀的簇。示意圖:
4.網格聚類 STING
基于網格的聚類方法將空間量化為有限數目的單元,可以形成一個網格結構,所有聚類都在網格上進行。基本思想就是將每個屬性的可能值分割成許多相鄰的區間,并創建網格單元的集合。每個對象落入一個網格單元,網格單元對應的屬性空間包含該對象的值.
基于網格的聚類方法的主要優點是處理速度快,其處理時間獨立于數據對象數,而僅依賴于量化空間中的每一維的單元數。這類算法的缺點是只能發現邊界是水平或垂直的簇,而不能檢測到斜邊界。另外,在處理高維數據時,網格單元的數目會隨著屬性維數的增長而成指數級增長。
示意圖:
5.模型聚類 GMM
基于模型的聚類方法是試圖優化給定的數據和某些數學模型之間的適應性的。該方法給每一個簇假定了一個模型,然后尋找數據對給定模型的最佳擬合。假定的模型可能是代表數據對象在空間分布情況的密度函數或者其他函數。這種方法的基本原理就是假定目標數據集是由一系列潛在的概率分布所決定的。
下圖給出了對基于劃分的聚類方法和基于模型的聚類方法進行了對比。左側給出的結果是基于距離的聚類方法,核心原則就是將距離近的點聚在一起。右側給出的基于概率分布模型的聚類方法,這里采用的概率分布模型是有一定弧度的橢圓。標出了兩個實心的點,這兩點的距離很近,在基于距離的聚類方法中,它們聚在一個簇中,但基于概率分布模型的聚類方法則將它們分在不同的簇中,這是為了滿足特定的概率分布模型。
6.圖聚類 Spectral Clustering(譜聚類)
基于圖聚的聚類方法是把所有的數據看做空間中的點,這些點之間可以用邊連接起來。距離較遠的兩個點之間的邊權重值較低,而距離較近的兩個點之間的邊權重值較高,通過對所有數據點組成的圖進行切圖,讓切圖后不同的子圖間邊權重和盡可能的低,而子圖內的邊權重和盡可能的高,從而達到聚類的目的。
總結
以上是生活随笔為你收集整理的数据分析方法-聚类算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python数据预处理数据的方法总结(使
- 下一篇: Flink的ProcessFunctio