常见聚类算法分类

聚类划分:

(1)划分聚类  k-means、k-medoids、k-modes、k-medians、kernel k-means

(2)层次聚类  Agglomerative 、divisive、BIRCH、ROCK、Chameleon

(3)密度聚类 DBSCAN、OPTICS

(4)网格聚类  STING

(5)模型聚类  GMM

(6)图聚类  Spectral Clustering(谱聚类)

k-medoids:它到其他所有(当前cluster中的)点的距离之和(sqrt)最小——作为中心点

k-modes:分类属性型数据的采用的聚类算法,采用差异度来代替k-means算法中的距离

k-medians:它到其他所有(当前cluster中的)点的距离之和最小——作为中心点

Agglomerative:自底向上,层次聚类

Divisive: 自顶向下,层次聚类

DBSCAN:

GMM:对于每个类假定一个分布模型,试图找到每个类最好的模型

Spectral Clustering:用特征向量的元素来表示原来的数据,并在其上进行 K-means 

 

 

聚类算法教程:

http://scikit-learn.org/stable/auto_examples/index.html#clustering

http://www.zhihu.com/question/34554321?sort=created

常见几个:k-means、层次聚类、混合高斯(GMM)、谱聚类

计算相似度:余弦相似度、jaccard、编辑距离

k-means:

1、  选取n个中心点

2、  计算每个点与上述n个点的距离,将其划分到最近一个点

3、  重新计算中心点

4、  重复2-3

 

问题:n值得选取(1选择彼此距离尽可能远的K个点 2先对数据用层次聚类算法或者Canopy算法进行聚类,得到K个簇之后,从每个类簇中选择一个点,该点可以是该类簇的中心点,或者是距离类簇中心点最近的那个点。),怎样重新计算中心点(均值)

 

层次聚类:(凝聚的层次聚类、分裂的层次聚类

1、将每个对象归为一类, 共得到N, 每类仅包含一个对象. 类与类之间的距离就是它们所包含的对象之间的距离.

2、 找到最接近的两个类并合并成一类, 于是总的类数少了一个.

3、 重新计算新的类与所有旧类之间的距离.

4、重复第2步和第3, 直到最后合并成一个类为止(此类包含了N个对象).

 

问题:每次都要找两两最近吗?怎样合并两个类?(一般是计算所有簇的中心之间的距离

没有更多推荐了,返回首页