十一城

跬步千里,小流江海。

Home Linux ML Python Java Thoughts KmKg BookCan Links About

2017-06-23
机器学习-聚类

• 分类: ml • 标签:

Clustering

定义

聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y的,也就是说样例中已经给出了样例的分类。

聚类与分类

  • 聚类分析中的“类”(cluster)和分类的“类”(class)是不同的,对cluster更加准确的翻译应该是“簇”。聚类的任务是把所有的实例分配到若干的簇,使得同一个簇的实例聚集在一个簇中心的周围,它们之间距离的比较近;而不同簇实例之间的距离比较远。对于由数值型属性刻画的实例来说,这个距离通常指欧氏距离
  • 两个算法应该都属于机器学习范围,用途非常广,包括机器视觉,数据挖掘等。分类是有监督的学习,需要事先标记样本,而聚类是无监督学习,不需要经验数据,但两者都是为了归类问题

Clustering Algorithms分类

  • Partitioning approach:
    • 建立数据的不同分割,然后用相同标准评价聚类结果。(比如最小化平方误差和)
    • 典型算法:K-Means, K-Medoids
  • Model-based:
    • 对于每个类假定一个分布模型,试图找到每个类最好的模型
    • 典型算法:GMM(混合高斯)
  • Dimensionality Reduction Approach:
    • 先降维,再聚类
    • 典型算法:Spectral clustering,Ncut

k-means

样本点满足高斯分布

如何选择k值?

  • 按需选择
  • 观察法
  • 手肘法
  • Gap Statistics方法

DBSCAN

两个阈值的选择

  • EPS
  • MINPTS

CFSFDP

Clustering by fast search and find of density peaks—密度中心聚类算法

“Clustering by fast search and find of density peaks”是在2014年《Science》期刊上发表的一篇论文,这篇文章提出一种新型的基于密度的聚类算法。这个新聚类算法的核心思想在于对聚类中心的刻画上

算法优点

  • 该聚类算法可以得到非球形的聚类结果,可以很好地描述数据分布,同时在算法复杂度上也比一般的K-means算法的复杂度低。
  • 同时此算法的只考虑点与点之间的距离,因此不需要将点映射到一个向量空间中。

算法缺点

  • 需要事先计算好所有点与点之间的距离。如果样本太大则整个距离矩阵的内存开销特别大,因此如果只需要得到最终聚类中心,则可以考虑牺牲速度的方式计算每一个样本点的和,避免直接加载距离矩阵。
  • 文中提到聚类中心可以自动确定,但是从作者提供的示例代码看来,其判定过程还是需要人为地干预选择

聚类算法应用的领域

  • 用户画像——企业发掘优质客户
  • 网站的推荐系统
  • 社区发现
  • 计算机集群分析(在大型集群中找到可能有问题的服务器)
  • 航天数据的分析(告诉我们星系的组成情况)

参考

  1. http://blog.csdn.net/abcjennifer/article/details/8170687
  2. http://people.sissa.it/~laio/Research/Res_clustering.php
  3. http://www.cnblogs.com/peghoty/p/3945653.html
  4. http://www.cnblogs.com/taokongcn/p/4034348.html
  5. http://sofasofa.io/forum_main_post.php?postid=1000282#

dzzxjl

Home Linux ML Python Java Thoughts KmKg BookCan Links About