機器學習——Hierarchical and Density Clustering層次密度聚類

Hierarchical and Density Clustering 基於層次和密度的聚類

Created: Apr 24, 2020 4:56 PM

K-Means的弊端

K-Meas算法並不是使用所以情況,K均值算法綜述試圖尋找高維領域呈原形、球形或超球面的類,對與下圖三個類別,K-Means算法就無法正確區分三個類別,

機器學習——Hierarchical and Density Clustering層次密度聚類

機器學習——Hierarchical and Density Clustering層次密度聚類

Hierarchical Clustering 層次聚類

agglomerative clustering 凝聚聚類

AgglomerativeClustering是層次聚類的一種,使用自底向上方法執行分層聚類:每個觀察都從其自己的聚類開始,並且聚類被連續合併在一起,分為單鏈接聚類、全鏈接聚類、平均距離鏈接、word'method離差平方和

單鏈單鏈接聚類

層次聚類的結果能讓我們直觀的瞭解類之間的關係。我們通過示例來分析

假如一家披薩店想對它的客戶位置做一個聚類處理,以便更好的確定在哪裡開分店,

機器學習——Hierarchical and Density Clustering層次密度聚類

我們使用單鏈接聚類法將它做聚類處理。

第一步,我們假設每一個點是一個類,併為每個點標記。

第二步,計算任意兩點之間的距離,然後選擇兩個類之間的最短距離(4,5),並用括號把它們鏈接起來,然後繼續尋找(1,2)(6,8),這樣我們就得到三個類,並把它標記在右邊。

機器學習——Hierarchical and Density Clustering層次密度聚類

現在問題就有點不同,7號點和黃色的類的距離是多少呢,是7到6的距離還是到8的距離?還是平均距離?這是區分不同層次聚類的方法的一個標準,單連接聚類關注的是類的最短距離,也就是6到7的距離,因為6是距離7最近的點,所以這個新類中含有另外一個類作為子類,然後就可以據此生成系統樹圖。

機器學習——Hierarchical and Density Clustering層次密度聚類

那麼我們分為幾個類別呢,如果我們輸入的類的數量是2,我們就可以從最上邊切割。

機器學習——Hierarchical and Density Clustering層次密度聚類

衡量類之間的距離,是區分不同層次聚類的一種方法,單連接聚類法關注的是兩個類之間的最短聚類,然後比較,選擇最短聚類,然後把這兩個類放到一個類中,這容易導致形成狹長的類,大多數情況下,我們還是想要緊湊的類。

機器學習——Hierarchical and Density Clustering層次密度聚類

我們可以看以下K-Means和單鏈接層次聚類的對比:

機器學習——Hierarchical and Density Clustering層次密度聚類

全鏈接聚類

機器學習——Hierarchical and Density Clustering層次密度聚類

在上圖的情況下,全連接聚類法關注的是兩個類中兩點之間的最遠距離,全連接聚類法中,這樣的距離衡量方法使得產生的類比較緊湊。

平均值聚類

平均值,計算兩類中任意兩點的聚類,然後取平均值,

Ward' Method離差平方和

先計算出兩個類所有點的中心點,也就是計算兩個類所有點的平均值,然後計算出兩個類距離中心點的距離C,再減去兩個類分別距離其的中心點距離A、B

機器學習——Hierarchical and Density Clustering層次密度聚類

機器學習——Hierarchical and Density Clustering層次密度聚類

優缺點

優點

  • - 得到的層次表達信息豐富
  • - 把數據集的聚類結構視覺化
  • - 數據內部有層次關係時,更有用,例如生物學

缺點

  • - 對噪音和離群值很敏感,所以需要提前清理噪音、離群值
  • - 計算量大

Density Clustering 密度聚類

指的是具有噪聲的基於密度的聚類方法,對於有噪聲的數據有很強的使用性,它一般是將密集分佈的點聚類,其它剩餘的點標記為噪音

DBSCAN在開始時任意選擇一點,周圍沒有一個點,所以標記為噪聲點。

機器學習——Hierarchical and Density Clustering層次密度聚類

在選擇下一個點,周圍只有兩個點,這個數量不夠我們定義為一個類(5個點),所以標記為噪聲點。

機器學習——Hierarchical and Density Clustering層次密度聚類

我們看下一個點,週五有5個點,所以我們就把它標記為第一個類,並標記中心點。

機器學習——Hierarchical and Density Clustering層次密度聚類

繼續執行此步驟,找到類後繼續以它的邊界點作為核心點尋找,並標記最後的邊界點。

機器學習——Hierarchical and Density Clustering層次密度聚類

K-Means和DBSCAN對比

機器學習——Hierarchical and Density Clustering層次密度聚類

DBSCAN可視化

https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/


優缺點

優點:

  • - 不需要指明類的數量
  • - 能靈活的找到並分離各種形狀和大小的類
  • - 可以處理噪聲點和離散點

缺點:

  • - 第一個是將兩個聚類中可到達的邊界點分配給首先找到它們的聚類,並且由於以任意順序訪問了這些點,因此在這種情況下,不能保證DBSCAN返回相同的聚類
  • - 找到不同密度的類方面有一些困難

示例

<code>dataset_2 = pd.read_csv('varied.csv')[:300].values

helper.plot_dataset(dataset_2, xlim=(-14, 5), ylim=(-12, 7))/<code>
機器學習——Hierarchical and Density Clustering層次密度聚類

<code>eps_values = [0.3, 0.5, 1, 1.3, 1.5]

min_samples_values = [2, 5, 10, 20, 80]

helper.plot_dbscan_grid(dataset_2, eps_values, min_samples_values)/<code>
機器學習——Hierarchical and Density Clustering層次密度聚類

參數調整方法


機器學習——Hierarchical and Density Clustering層次密度聚類


許多小集群。 超出了數據集的預期。可以增加min_samples和epsilon


機器學習——Hierarchical and Density Clustering層次密度聚類


大多數點屬於一個類,減少epsilon並增加min_samples


機器學習——Hierarchical and Density Clustering層次密度聚類


大多數/所有數據點都標記為噪聲,增加epsilon並減少min_samples


機器學習——Hierarchical and Density Clustering層次密度聚類


除了極度密集的區域外,大多數/所有數據點都是標記為噪音。 (或者所有點都標記為噪聲)。減少min_samples和epsilon


分享到:


相關文章: