最近要在spark上做乙個聚類的專案,資料量和類的個數都比較大。kmeans效果尚可,但是有點慢,因而重新看了下常用的演算法。最終選用mini-batch kmeans,使用類似kmeans++的方法來初始化類中心。
kmeans
attention: init centers (randomize vs kmeans++)
mini-batch kmeans
loops: random select samples; find closest for all samples; update centers for each sample
mean shift
init: get centers by bandwidth
loops: find neighbors of centers; update centers; de-duplicate
dbscan
init: get densest core samples
loops: get more core samples nearby old samples
ward hierarchical
init: each sample as center
loops: merge to minimize rmse within clusters
spectral clustering
steps: similarity matrix s; s=uv; kmeans of u
ap cluster
init: get s; rik=0, aik=0
loops: rik = sik - max_k'!=k(aik' + sik'); aik = min(0, rkk + sum_i'!=i,k max(0, ri'k)); akk = sum_i'!=k max(0, ri』k)
end: for any i, max_k rik + aik as it』s exemplar
topic model (lda)
...其實scikit-learn實現了很多演算法,也有現成的資料集可以做做實驗。例如: 上有一些效果圖,和演算法擴充套件性的說明。
聚類演算法總結
凸集 在歐氏空間中,凸集是對於集合內的每一對點,連線該對點的直線段上的每個點也在該集合內 非凸 non convex 資料 模擬上述可知 首先我們要了解衡量物件間差異的方法物件可能是乙個值,也可能是序列,聚類的方式的大都通過距離或相似度來衡量,常用距離如下 對於兩個物件的n維指標 x1,x2,xn ...
聚類演算法總結
訓練深度學習網路分為監督學習 無監督學習 半監督學習 強化學習。聚類演算法屬於無監督學習的範疇,總結的演算法有k means mean shift dbscan gmm 凝聚層次聚類 圖團體檢測。k means 是最知名的聚類演算法,簡單地使用均值。演算法流程 初始化,隨機選取k個中心點 遍歷所有資...
聚類 分類演算法 聚類演算法和分類演算法總結
k means 是一種典型的劃分聚類演算法,它用乙個聚類的中心來代表乙個簇,即在迭代過程中選擇的聚點不一定是聚類中的乙個點,該演算法只能處理數值型資料 k modes k means演算法的擴充套件,採用簡單匹配方法來度量分型別資料的相似度 k prototypes 結合了k means和k mod...