常见聚类方法
常見的聚類方法:K-Means,層次聚類,基于密度的聚類
1.K-Means(K均值)聚類
算法步驟:
(1) 首先我們選擇一些類/組,并隨機初始化它們各自的中心點。中心點是與每個數據點向量長度相同的位置。這需要我們提前預知類的數量(即中心點的數量)。
(2) 計算每個數據點到中心點的距離,數據點距離哪個中心點最近就劃分到哪一類中。
(3) 計算每一類中中心點作為新的中心點。
(4) 重復以上步驟,直到每一類中心在每次迭代后變化不大為止。也可以多次隨機初始化中心點,然后選擇運行結果最好的一個。
下圖演示了K-Means進行分類的過程:
優點:速度快,計算簡便
缺點:我們必須提前知道數據有多少類/組。
2.基于密度的聚類算法(如:DBSCAN)
詳細講解:https://blog.csdn.net/liudongdong19/article/details/80968459
其核心思想就是先發現密度較高的點,然后把相近的高密度點逐步都連成一片,進而生成各種簇。算法實現上就是,對每個數據點為圓心,以eps為半徑畫個圈(稱為鄰域eps-neigbourhood),然后數有多少個點在這個圈內,這個數就是該點密度值。然后我們可以選取一個密度閾值MinPts,如圈內點數小于MinPts的圓心點為低密度的點,而大于或等于MinPts的圓心點高密度的點(稱為核心點Core point)。如果有一個高密度的點在另一個高密度的點的圈內,我們就把這兩個點連接起來,這樣我們可以把好多點不斷地串聯出來。之后,如果有低密度的點也在高密度的點的圈內,把它也連到最近的高密度點上,稱之為邊界點。這樣所有能連到一起的點就成一了個簇,而不在任何高密度點的圈內的低密度點就是異常點。
算法步驟:
1. 首先確定半徑r和minPoints. 從一個沒有被訪問過的任意數據點開始,以這個點為中心,r為半徑的圓內包含的點的數量是否大于或等于minPoints,如果大于或等于minPoints則改點被標記為central point,反之則會被標記為noise point。
2. 重復1的步驟,如果一個noise point存在于某個central point為半徑的圓內,則這個點被標記為邊緣點,反之仍為noise point。重復步驟1,知道所有的點都被訪問過。
優點:不需要知道簇的數量
缺點:需要確定距離r和minPoints
總結
- 上一篇: 蓝牙耳机只有连接电脑才有杂音
- 下一篇: c语言switch判断字母,判断swit