聚类

聚类是一种无监督机器学习方法,它基于数据的内部结构寻找观察样本的自然族群(即集群),常用于新闻分类、推荐系统等。聚类的特点是训练数据没有标注,通常使用数据可视化评价结果。

聚类的常用方法包括

  • K均值聚类:把n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离它最近的均值(即聚类中心)对应的聚类,以之作为聚类的标准。
  • Affinity Propagation聚类:基于样本之间的图形距离确定集群
  • 层次聚类
  • DBSCAN

常用的聚类数据集包括

  • scikit-learn blob: 简单聚类
  • scikit-learn circle: 非线性可分数据集
  • scikit-learn moon: 更复杂的数据集

性能度量

我们希望聚类结果的“簇内相似度”高且“簇间相似度”低。其性能度量大致有两类:一类是将聚类结果与某个“参考模型”进行比较,称为“外部指标”;另一类是直接考查聚类结果而不利于任何参考模型。称为“内部指标”。

常用的外部指标包括以下几种,值越大越好

  • Jaccard系数
  • FM指数
  • Rand指数

常用的内部指标包括以下几种

  • DB指数,越小越好
  • Dunn指数,越大越好

距离计算

“距离度量”需满足一些基本性质,如非负性、同一性、对称性和直递性。最常用的是闵可夫斯基距离、欧氏距离和曼哈顿距离(后两者其实都是闵可夫斯基距离的特例)。

闵可夫斯基距离只可用于有序属性,对无序属性可采用VDM(Value Difference Metric)。

原型聚类

原型聚类亦称“基于原型的聚类”,假设聚类结构能通过一组原型(原型是指样本空间中具有代表性的点)刻画。

常用的方法包括

  • k均值算法
  • 学习向量化
  • 高斯混合聚类(基于概率模型)

密度聚类

密度聚类亦称“基于密度的聚类”,假设聚类结构能通过样本分布的紧密程度确定。典型的代表算法为DBSCAN算法,它基于一组“领域”(neighborhood)参数来刻画样本分布的紧密程度。

DBSCAN将“簇”定义为:由密度可达关系导出的最大的密度相连样本集合。

层次聚类

层次聚类(hierarchical clustering)试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。 典型的AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。

© Pengfei Ni all right reserved,powered by GitbookUpdated at 2017-10-25 22:33:25

results matching ""

    No results matching ""