数据挖掘-概念与技术-第10章聚类作业题

介绍基于划分的聚类方法

给定n个对象的集合,将对象划分成K个簇。每个簇至少包含一个对象。

K-Means伪代码

输入:k:簇的数目

D: 包含n个对象的数据集

输出:k个簇的集合

方法:

(1) 从D中任意选择K个对象作为初始簇的中心。

(2) repeat

a) 根据簇中对象的均值,将每个对象分配到最相似的簇。

b) 更新簇的均值,计算每个簇中对象的均值。

until 每个簇的对象情况不再发生变化

介绍基于层次的聚类方法

有两种基于层次的聚类方法,层次聚类可以是凝聚的或者是分裂的。

凝聚是自底向上的聚类,每个对象形成自己的簇开始,迭代地把簇合成越来越大的簇。直到所有对象合并到统一个簇之中,或者满足相应的条件为止。

分裂的层次聚类方法使用的是自顶向下的策略,从把所有对象置于一个簇之中开始,把根上的簇划分成多个较小的子簇,并且递归的把这些粗划分成更小的簇。知道最低层的簇足够凝聚为止。

基于密度的聚类方法

不同于基于层次的和基于划分的只能生成球状簇,基于密度的方法能识别任意形状的簇。

DBSCAN

邻域的密度可以简单地用邻域类的对象数量度量。

介绍基于网格的聚类方法

这种方法,把输入空间划分成独立于输入对象的分布的单元。

  1. STING : 基于网络的多分辨率的聚类技术。
  2. CLIQUE:基于网格和密度的聚类方法。

STING

基于网格的多分辨率的聚类技术,将输入对象的空间区域划分成矩形单元。每个网格单元的属性的统计星系(均值,最大值)等被作为参数预先计算和存储。

优点:

  1. 基于网格的计算是独立于查询的。
  2. 网格结构有利于并行处理和增量更新
  3. 效率高。

CLIQUE

如果数据对象的属性的值差异很大,可鞥很难在整个数据空间之中找出簇。这种情况下,在数据的不同自空间之中搜索簇可能更有意义。

CLIQUE 是一种简单的基于网格的聚类方法,用于发现子空间之中基于密度的簇。它把每个维划分成不重叠的区间,从而把数据对象的整个嵌入空间划分成单元。使用一个密度阈值识别稠密但愿和稀疏单元。

一个k-维单元c至少有l个点,仅当c的每个(k-1)-维投影至少有l个点。

 

具体工作过程如下:

  1. COLQUE把d-维数据空间划分成若干个互不重叠的矩形单元,并且从中识别出稠密单元。CLIQUE把每个维度都划分成区间,并识别至少包含l个点的区间。l是密度阈值。
  2. 迭代的连接子空间的稠密但愿。连接操作产生空间中的k+1为款候选单元。检查c中的点数是否满足密度阈值。
  3. 使用最大区域来覆盖连接的稠密单元。采用的是一种贪心算法。

 

 

聚类评估

  1. 估计聚类趋势。
  2. 确定数据集之中的簇数。
  3. 测定聚类的质量。

10.4K-Means++ 算法

这个算法和K-Means的主要区别在于初始中心的选择问题。

首先随机选择k个中心,随后迭代,对每个维被选中为中心的对象p,选择一个座位新的中心,该对象以正比于dist(p)^2的概率随机选取。dist(p) 是p到已经选定的最近中心的距离。这个方法能够加快k-均值的收敛速度,能保证最终聚类结果的质量。

原因是这种方法能够保证初始聚类的中心尽可能的远。

  1. 从输入的数据点集合中随机选择一个点作为第一个聚类中心
  2. 对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)
  3. 选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
  4. 重复2和3直到k个聚类中心被选出来
  5. 利用这k个初始的聚类中心来运行标准的k-means算法
posted @ 2015-09-22 14:02  程序员小王  阅读(435)  评论(0编辑  收藏  举报