机器学习-处理聚类问题常见算法

1 DBSCAN

DBSCAN 是一种基于密度的空间聚类算法,它不需要定于簇的个数,而是将具有足够高密度的区域划分为簇,并且在有噪声的数据中发现任意形状的簇,在此算法中将簇定于为密度相连的点的最大集合。

原理:1) 需要选择一种距离度量,对于待聚类的数据集中,任意两个点之间,反映了点之间的密度,说明了 点与点是否能够聚到同一类中,由于DBSCAN 算法对高维数据定义密度很困难,所以对于二维空间中的点,可以使用欧几里德距离来进行度量。

DBSCAN 算法需要用户输入2个参数:一个参数是半径(Eps),表示以给定点P 为中心的圆形领域的范围,另一个参数是以P 为中心的邻域内最少点的数量,如果满足,以点P 为中心,半径为Eps 的邻域内的点的个数不少于MinPts,则称点P 为核心点。

 

2 LDA的原理

LDA是一种基于有监督学习的降维方式,将数据集在低维度的空间进行投影,要使得投影后的同类别的数据点间的距离尽可能的靠近,而不同类别间的数据点的距离尽可能的远。

3 Kmeans的缺点,k 怎么确定

缺点:1) k-means 是局部最优的,容易受到初始质心的影响;2)同时k的选取也会直接影响聚类的结果,最优聚类的k 值应该与样本数据本身的结构信息相吻合,而这种结构信息很难去掌握,因此选取最优的k 值是非常困难的。

4 DBSCAN 和Kmeans 的区别

1) k 均值和DBSCAN 都是将每个对象指派到当个簇的划分聚类算法,但是K均值一般聚类所有对象,而DBSCAN 丢弃被它识别为噪声的对象。

2)K 均值使用簇的基于原型的概念,DBSCAN 使用基于密度的概念

3)k 均值很难处理非球形的簇和不同大小的簇,DBSCAN 可以处理不同大小或形状的簇,并且不太受噪声和离群点的影响,当簇具有很不相同的密度时,两种算法的性能都很差。

4) k 均值只能用于具有明确定义的质心的数据,DBSCAN 要求密度对数据是有意义的

5)K均值可以用于稀疏的高维数据,如文档数据,DBSCAN通常在这类数据上的性能很差,因为对于高维数据,传统的欧几里德密度不能很好处理它们。

6) K 均值和DBSCAN 的最初版本都是针对欧几里德数据设计的,但是它们都被扩展,以便处理其他类型的数据。

7) 基本K 均值算法等价于一种聚类方法,假定所有的簇都来自于球形高斯分布,具有不同的均值,但具有相同的协方差矩阵,DBSCAN 不对数据的分布做任何假定。

8)K 均值DBSCAN 和都寻找使用所有属性的簇,即它们都不寻找可能只涉及某个属性子集的簇。

9) K 均值可以发现不是明显分离的簇,即便簇有重叠也可以发现,但是DBSCAN 合并有重叠的簇。

10) K 均值算法的时间复杂度O(m),而DBSCAN的时间复杂度是O(m^2),除非用于诸如欧几里德这样的特殊情况

11)DBSCAN 多次运行产生相同的结果,而k均值通常使用随机初始化质心,不会产生相同的结果

12) DBSCAN 自动地确定簇的个数,对于K 均值,簇个数需要作为参数指定,然而DBSCAN 必须指定另外两个参数:Eps和minPts 

13) K 均值聚类可以看做优化问题,即最小化每个点到最近质心的误差平方和,并且可以看做一种统计聚类的特例,DBSCAN 不基于任何形式化模型。

 

 

 

 

 

 

 

 

你可能感兴趣的:(机器学习)