1 / 61

Applications Hierarchical Clustering k -Means Algorithms CURE Algorithm

聚类. Applications Hierarchical Clustering k -Means Algorithms CURE Algorithm. http://infolab.stanford.edu/~ullman/mining/2009/index.html. 给定大量的数据,需要理解它们的结构. 聚类. 给定一个点的集合 , 已知点之间的距离 , 把这些点分为若干个类别(子集) , 在某种意义上,一个类别之间的点的距离尽可能的接近. Example. x xx x x x x x x x x x x

carver
Télécharger la présentation

Applications Hierarchical Clustering k -Means Algorithms CURE Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 聚类 Applications Hierarchical Clustering k -Means Algorithms CURE Algorithm

  2. http://infolab.stanford.edu/~ullman/mining/2009/index.html

  3. 给定大量的数据,需要理解它们的结构

  4. 聚类 • 给定一个点的集合, 已知点之间的距离,把这些点分为若干个类别(子集), 在某种意义上,一个类别之间的点的距离尽可能的接近.

  5. Example x xx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

  6. Problems With Clustering • 在二维空间聚类看起来较为简单. • 对少量数据聚类也似乎较为简单. • And in most cases, looks are not deceiving.

  7. 维度的讨论 • 很多应用不是二维的,而是 10 或者 10,000维. • 高维空间具有不同的性质:几乎所有的点之间的距离都相同. • 无法聚类

  8. Example: Clustering CD’s (Collaborative Filtering) • Intuitively: 音乐可以分为不同的类别,用户只喜欢几个类别. • 类别是什么? • 用购买CD的用户来表示一个CD. • 相似的CD拥有相似的用户购买群体,反过来亦然.

  9. The Space of CD’s • 设想一个空间,一个维度对应一个购买者. • 维度上的值只能取 0 或 1 . • 一个 CD’ 表示为 (x1, x2,…, xk), where xi = 1 当且仅当i th顾客购买了这个 CD. • Compare with boolean matrix: rows = customers; cols. = CD’s. 用户空间

  10. Space of CD’s – (2) • 对于 Amazon, 维度是数以千万计. • An alternative: 用 minhashing/LSH 可以得到“close” CD’s 之间的 Jaccard 相似性. • 1 减去 Jaccard similarity 可以定义为CD之间的距离.

  11. Example: Clustering Documents • 用矢量(x1, x2,…, xk)表示一个文档,其中xi = 1 当且仅当i th词出现在文档里. • 不限制词的集合. • 具有相同的词的集合可能是同一个主题.

  12. Aside: Cosine, Jaccard, and Euclidean Distances • 表示文件的的方法,词或者shingle: • 如果把文件表示成一个向量: 用余弦距离测量文件之间的距离. • 如果把文件表示成一个shingle的集合: Jaccard距离测量文件之间的距离 • 表示成点: 用欧几里得距离测量点之间的距离.

  13. 聚类的方法 • 层次法Hierarchical (Agglomerative): • 从下往上 • 一开始,每个点本身就是一个类. • 反复把两个相近的类别汇聚成一个类别. • 从上往下 • 从一个类开始分裂 • 点分配Point Assignment: • 保持类别的集合. • 把点放入最近的类别.

  14. 层次聚类 • 关键操作:反复合并距离最近的类别 • 3个问题: • 如何表示一个超过一个点的类别? • 如何决定最近的类别? • 什么时候停止聚类?

  15. Hierarchical Clustering – (2) • Key problem: 在建立类别的时候, 如何表示每一个类别的位置, 如何测量一对类别的距离? • Euclidean case: • 用每个类别的中心表示该类的位置:centroid= 类中的点的平均值. • 用类的中心点之间的距离作为类之间的距离.

  16. Example x (1.5,1.5) x (4.7,1.3) x (1,1) x (4.5,0.5)

  17. Non-Euclidean 如何表示一个类? • Non-Euclidean只有点本身. • I.e., 不存在两个点的平均位置. • 用clustroid表示 • clustroid = 在类里面距离其它点最近的点. • 计算类别之间的距离的时候,把clustroid 看成是欧式空间的中心点.

  18. 什么叫距离其他点最近的点 • 可能的含义: • Smallest maximum distance to the other points. • Smallest average distance to other points. • Smallest sum of squares of distances to other points. • Etc., etc.

  19. Example clustroid 1 2 6 4 3 clustroid 5 intercluster distance

  20. Clustroid和centroid

  21. 如何定义类之间的距离 • 两个类别中任意两个点之间的距离(这两个点分属两个类别) • 基于类的“黏度”定义类别之间的距离(黏度,如类别中的点与类中心点的最大距离) • 合并的类别:如果两个类别合并后,产生的类别的黏度最大,则应该合并这两个类

  22. Cohesion具体定义 • 方法1: 合并后类的直径= 类里面最远的两个点之间的距离. • 方法2:合并后类里面点之间的平均距离. • 方法3:居于密度的方法 • 用类里面的点的数目除以合并后类的直径或者平均距离 • 或者用点数的平方除以合并后类的直径或者平均距离

  23. 层次聚类的实现 • 最简单的实现方法 • 对所有的类别两两比较,然后合并,复杂度(o(N^3))。 • 使用优先级队列,优化上述想法的实现细节,能够把复杂度减少到(o(N^2log(N)) • 对于无法装入内存的实际数据,还是太大

  24. k – Means Algorithm(s) • 假设点之间的距离是Euclidean距离. • 假设类的数目为k. • 初始化类别:每个类别首先选择一个点. • Example: 先随机选一个点,从剩下的点中选择k-1个距离最远的点.

  25. Populating Clusters • 对于每一个点, 把它归类到距离中心点最近的类别中. • 所有的点都分完以后,重新计算中心点 • 按照新的中心点,重新分配所有的点 • 有时候,点的类别会发生变化. • 重复2和3,直到收敛 • 收敛的定义:中心点不再变化,点不在类之间移动。

  26. Best value of k Average distance to centroid k 选择合适的k • 选择不同的, 观察平均距离的变化,随着k的增加,平均距离在减少. • 一开始,平均距离随着k迅速减少,随后逐渐平坦

  27. Too few; many long distances to centroid. Example: Picking k x xx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

  28. Just right; distances rather short. Example: Picking k x xx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

  29. Too many; little improvement in average distance. Example: Picking k x xx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

  30. BFR Algorithm • BFR (Bradley-Fayyad-Reina) 是k –means的一个改进,用于处理大规模存储在硬盘上的数据. • 假设类以正态分布概率分布在欧式空间的中心点附近. • 不同维度的方差可能会有所不同. • 类是轴对齐的椭圆 • 对于每一个点,可以定量计算它属于某一个类别的概率

  31. BFR – (2) • 一次读入可以装满内存的点. • 大多数以前载入的点用一些简单的统计值表示. • 初始化的时候,用某些合理的方法产生k个中心点. • 取k个随机点 • 取一个小的随机样本,最优聚类. • 取随机样本; 选一个随机点,然后选k – 1 个离该点最远的点.

  32. 三种类别 • 废弃集(The discard set): • 距离中心点足够近的点.可以仅存储概要信息 • 压缩集(The compression set): • 距离足够近的点,但是这些点又距离中心点较远. • 这些点仅存储概要信息.但是不能归入某个类别 • 保留集(The retained set) : isolated points.

  33. 废弃集和压缩集的概要信息 • 废弃集和压缩集表述为: • 点数目, N. • 和向量, 第ith元素是所有点在第ith维坐标的和. • 平方和向量: ith是点在第ith维坐标的坐标的平方和.

  34. Comments • 两个N维向量和一个点数目N,2d + 1 个值表示任意多个点的集合. • d = 维度的数目. • 每一维的均值(中心点坐标)可以表示为 SUMi/N. • SUMi = ith component of SUM.

  35. Comments – (2) • 维度i的方差: (SUMSQi /N ) – (SUMi /N )2 • 标准差只要对上述值开根. • 如果椭圆不是轴对齐的,则需要用d*d维的协方差矩阵表示统计信息,而不是d维统计信息了。 • 下面就可以开始聚类了。

  36. 处理读入内存的点 • 找到距离中心点足够近的点。 • 把这些点加入到废弃集 DS。 • 用主内存聚类算法对剩下点和以前遗留下来的孤立点进行聚类, • 有聚类的点集合就是压缩集合,剩余的点归类为孤立点集合.

  37. Processing – (2) • 计算类的统计值. • Add N’s, SUM’s, SUMSQ’s. • 如果可能的话,合并Cs集合. • 如果是最后一轮,把所有的Cs集合和Rs点归类到最近的类别中.

  38. A Few Details . . . • 如何判断一个点已经距离中心点足够近,这样就能把这个点归入相应的类别? • 如何判断是否应该把两个压缩集合并成一个压缩集?

  39. How Close is Close Enough? • 如何判断一个点已经距离中心点足够近,这样就能把这个点归入相应的类别? • BFR 提供了两种方法: • Mahalanobis distance低于一个门限. • 属于最近的类别的概率最高.

  40. Mahalanobis 距离 • 归一化的距离中心点的欧式距离. • 对于点 (x1,…,xk) 和 centroid (c1,…,ck): • 每一个维度归一化: yi = (xi -ci)/i • 取yi ’s 的平方和. • 开根.

  41. Mahalanobis Distance – (2) • 如果类别是在d空间正态分布的,经过变换后,距离的标准差是 = d. • 68% 的点的 Mahalanobis distance < d. • 如果M.D. 小于某个门限,则把这个点归如该类别,例如, 2 倍的标准差.

  42. Picture: Equal M.D. Regions 2 

  43. 是否合并两个 CS 子类别? • 计算如果合并以后的形成的类别的方差. • N, SUM, SUMSQ. • 如果方差小于某个值,合并. • 各种变型: 对不同的维度加权, 考虑密度因素.

  44. The CURE Algorithm • BFR/k –means的问题: • 假设类别在每个维度上正态分布. • 轴是固定的,椭圆与轴有角度,不能工作. • CURE: • 假设欧式距离. • 类别(簇)可以有任何形状. • 用代表点的集合表示类

  45. Example: Stanford Faculty Salaries h h h e e e h e e e h e e e e h e salary h h h h h h h age

  46. 两阶段 CURE • 第一个阶段:初始化 • 取能在内存装下的随机样本点. • 初始化类别 • 用层次法聚类:把最近的点聚到一个类别中. • 对于每一个类别,选择代表点集合 • 选择相互距离足够远的点 • 把这些点向中心方向移动一段距离,例如 20%.

More Related