凸集:在歐氏空間中,凸集是對於集合內的每一對點,連線該對點的直線段上的每個點也在該集合內;
非凸(non-convex)資料:模擬上述可知;
首先我們要了解衡量物件間差異的方法物件可能是乙個值,也可能是序列,聚類的方式的大都通過距離或相似度來衡量,常用距離如下:
對於兩個物件的n維指標(x1,x2,….xn)|(y1,y2,…yn);
層次聚類演算法(hierarchical methods):適用於凸樣本集,根據分解順序自下而上法(bottom-up)和自上而下法(top-down),層次聚類演算法分為凝聚的層次聚類演算法和**的層次聚類演算法;演算法舉例:birch、rock、chameleon;
基於劃分的方法(partition-based methods):適用於凸樣本集,演算法目的是類內的點都足夠近,類間的點都足夠遠,演算法舉例:k-means及拓展變體演算法k-medoids、k-modes、k-medians、kernel k-means;
基於密度的聚類演算法(density-based methods):既可以適用於凸樣本集,也可以適用於非凸樣本集,可以系統的解決不規則形狀的聚類,同時對雜訊資料的處理比較好,演算法舉例:dbscan、optics(dbscan的拓展:根據高密度的特點設定引數,改善了dbscan的不足);
基於網格單元的聚類演算法(grid-based methods):將資料空間劃分為網格單元,並將資料物件對映到網格單元中,並計算每個單元的密度,根據預設的閾值判斷每個網格單元是否為高密度單元,由臨近的稠密單元組形成類或簇。演算法列表:sting、clique;
基於模型的聚類演算法(model-based methods):主要是指基於概率模型的方法和基於神經網路模型的方法,尤其以基於概率模型的方法居多。演算法舉例:高斯混合模型(gmm)、自組織對映模型(som);
參考鏈結,對聚類演算法巨集觀概念的寫的很清晰,感覺很厲害,從中提取了演算法列表,以便後期自己用到的時候,方便查詢相關**
原理
dbscan是一種基於密度的聚類演算法,採用查詢密度可達的物件的方法進行聚類分析,表現為同一類別的樣本之間是緊密相連的。
首先需要了解幾個概念:
演算法步驟
演算法描述:1、輸入原始資料、從中任意選取乙個資料點x,並檢查資料點x的ϵ鄰域;2、若x是核心點並且並未被劃分到某一類,則找出所有從x密度可達的點,形成乙個聚類;3、如果x不是核心點且不歸屬於任何簇,則將x作為雜訊處理;4、回到第一步,重複執行演算法,直至所有的點都被處理,則演算法結束。具體步驟如下:
層次聚類法
k-means聚類
自組織對映模型(som)
聚類演算法總結
最近要在spark上做乙個聚類的專案,資料量和類的個數都比較大。kmeans效果尚可,但是有點慢,因而重新看了下常用的演算法。最終選用mini batch kmeans,使用類似kmeans 的方法來初始化類中心。kmeans attention init centers randomize vs ...
聚類演算法總結
訓練深度學習網路分為監督學習 無監督學習 半監督學習 強化學習。聚類演算法屬於無監督學習的範疇,總結的演算法有k means mean shift dbscan gmm 凝聚層次聚類 圖團體檢測。k means 是最知名的聚類演算法,簡單地使用均值。演算法流程 初始化,隨機選取k個中心點 遍歷所有資...
聚類 分類演算法 聚類演算法和分類演算法總結
k means 是一種典型的劃分聚類演算法,它用乙個聚類的中心來代表乙個簇,即在迭代過程中選擇的聚點不一定是聚類中的乙個點,該演算法只能處理數值型資料 k modes k means演算法的擴充套件,採用簡單匹配方法來度量分型別資料的相似度 k prototypes 結合了k means和k mod...