Cluster(Simple Example)

1 基本概念

1.1 聚类的定义

  聚类:将一个包含 n 个数据对象的集合组织成 k 个划分( k n C 1 C 2 , C k ,其中每个划分 C i 代表一个簇(Cluster)

1.2 应用聚类分析的例子

  • 市场销售: 帮助市场人员发现客户中的不同群体,然后用这些知识来开展一个目标明确的市场计划;
  • 土地使用: 在一个陆地观察数据库中标识那些土地使用相似的地区;
  • 保险: 对购买了汽车保险的客户,标识那些有较高平均赔偿成本的客户;
  • 城市规划: 根据类型、价格、地理位置等来划分不同类型的住宅;
  • 地震研究: 根据地质断层的特点把已观察到的地震中心分成不同的类;

1.3 什么是一个好的聚类方法?

  • 一个好的聚类方法要能产生高质量的聚类结果——,这些簇要具备以下两个特点:
    高的簇内相似性低的簇间相似性
  • 聚类结果的好坏取决于该聚类方法采用的相似性评估方法以及该方法的具体实现;
  • 聚类方法的好坏还取决与该方法是能发现某些还是所有的隐含模式

2 相似性度量

  衡量两个样本的相似程度,比如基于距离的度量
  明考斯基距离( Minkowski distance):

这里写图片描述

  当 q = 1 时, d 称为曼哈坦距离( Manhattan distance)
  当 q = 2 时, d 就成为欧几里德距离(Euclidean distance)

这里写图片描述

  数据类型:
  标称型:一般在有限的数据中取,而且只存在‘是’和‘否’两种不同的结果(一般用于分类)
  数值型:可以在无限的数据中取,而且数值比较具体化,例如4.02,6.23这种值(一般用于回归分析)

3 Simple Eaxmple

3.1 划分聚类(Partitional Clustering)

这里写图片描述

eg:

  • k-Means
  • Fuzzy c-Means
  • EM算法

  以k-means为例
  给定k,算法的处理流程如下:

第一步:随机的把所有对象分配到k个非空的簇中;
第二步:计算每个簇的平均值,并用该平均值代表相应的簇中心;
第三步:将每个对象根据其与各个簇中心的距离,重新分配到与它距离最近的簇中;
第四步:重复2,3直到k个簇的中心点不再发生变化或准则函数 J e 收敛。
时间复杂度 O (kn)

  用 K-means 方法,将如下8个点聚为3类,假设初始化聚类中心为A1、B1和C1。A1(1,2),A2(3,1),A3(8,4), B1(5,8),B2(4,1),B3(6,4),C1(3,5),C2(4,9)。


  第一步,计算其它点到这三类聚类中心的距离

distance A2 A3 B2 B3 C2
A1 5 53 10 29 58
B1 53 25 50 17 2
C1 16 26 17 10 17

  由表看出,3类分别为

A1 A2 B2
B1 A3 C2
C1 B3

  第二步,计算新的聚类中心 K i

K1( 8 3 , 4 3
K2( 17 3 , 7
K3( 9 2 , 9 2

  第三步,计算数据集到新的聚类中心的距离

distance A1 A2 A3 B1 B2 B3 C1 C2
K1 3.24 0.22 35.54 49.92 1.88 18.22 13.58 60.60
K2 46.48 43.13 14.43 1.45 38.79 9.11 11.13 6.79
K3 18.5 14.5 12.5 12.5 12.5 2.5 2.5 20.5

  由表看出,3类分别为

A1 A2 B2
B1 C2
A3 B3 C1

  重复第二步,计算新的聚类中心 K i

K1( 8 3 , 4 3
K2( 9 2 , 17 2
K3( 17 3 , 13 3

  重复第三步,计算数据集到新的聚类中心的距离

distance A1 A2 A3 B1 B2 B3 C1 C2
K1 3.24 0.22 35.54 49.92 1.88 18.22 13.58 60.60
K2 54.5 58.5 32.5 0.5 56.5 22.5 14.5 0.5
K3 27.24 18.22 5.54 13.92 13.88 0.22 7.58 24.60

  由表看出,3类分别为

A1 A2 B2
B1 C2
A3 B3 C1

  聚类中心没有发生变化,聚类停止
  聚类的最终结果为

A1 A2 B2
B1 C2
A3 B3 C1

3.2 层次聚类(Hierarchical Clustering)

这里写图片描述

1)自底向上的聚类(Bottom-Up agglomerative

  • 每一项自成一类
  • 迭代,将最近的两类合为一类

2) 自顶向下的聚类(Top-Down divisive

  • 将所有项看作一类
  • 找出最不相似的项分裂出去成为两类

  我们可以知道两个项之间的相似度,但是聚类要求知道类与类之间的相似度,下面以类与类之间两项距离最短代表类之间的相似度为例

  用层次聚类的方法,将如下8个点聚为3类,A1(1,2),A2(3,1),A3(8,4), B1(5,8),B2(4,1),B3(6,4),C1(3,5),C2(4,9)

distance A1 A2 A3 B1 B2 B3 C1 C2
A1 0 - - - - - - -
A2 5 0 - - - - - -
A3 53 34 0 - - - - -
B1 52 53 25 0 - - - -
B2 10 1 25 50 0 - - -
B3 29 18 4 17 13 0 - -
C1 13 16 26 13 17 10 0 -
C2 58 65 41 2 64 29 17 0

这里写图片描述

这里写图片描述

  最终结果

A1 A2 B2
B1 C2
A3 B3 C1


参考
【1】 标称型数据和数值型数据

猜你喜欢

转载自blog.csdn.net/bryant_meng/article/details/80947157