面试题:请描述K-means的原理,说明选择聚类中心的方法 引发的回顾

聚类

  常见的无监督学习任务有密度估计、异常检测、聚类等,本问主要记录聚类算法及相关知识。

  在无监督学习中,训练样本的标记信息是未知的,训练的过程就是要找出数据中的内在性质和规律。
  聚类既可作为一个单独的过程,也能够作为其他学习任务的前驱过程,如分类,由于事先不知道样本的类别,我们可以先对样本进行聚类,根据聚类结果将每个簇(类)定义为一个类别,然后再基于这些类别训练分类模型,来判别新的样本。

聚类的两个基本问题:性能度量距离计算

1.性能度量
   聚类的目的是把相似的样本聚到一起,而将不相似的样本分开,类似于“物以类聚”,很直观的想法是同一个簇中的相似度要尽可能高,而簇与簇之间的相似度要尽可能的低。
   性能度量大概可分为两类: 一是外部指标, 而是内部指标
   a:外部指标将聚类结果和某个“参考模型”进行比较,
   b:内部指标不利用任何参考模型,直接考察聚类结果。
性能指标公式可参考西瓜书

2.距离计算
  距离度量常用 闵可夫斯基距离, 适用于有序属性(别的属性有离散属性)
  公式中当p=1时,即曼哈顿距离;
     当p=2时,即欧式距离(街区距离);
  对于无序属性,可用VDM(value difference metric)公式

几种聚类算法:
1.K-Means聚类
算法伪代码:

输入:样本集D={x1, x2, x3,…,xm},聚类簇数k
输出:簇划分C={C1,C2,…,Ck}
从D中随机选取k个样本作为初始向量;
repeat:
  初始化所有Ci为空集;
  对于样本集里每个样本x:
   计算x与k个初始向量的距离,选择距离最小的初始向量的簇标记j作为x的簇标记,将x加入Cj中;
  对于每个簇:
   计算新的均值向量,如果新的均值向量与上一步的不同,则更新;否则保持当前均值向量 不变;
until 当前均值向量均未更新;

2.高斯混合聚类(未看)

3.密度聚类
密度聚类从样本密度的角度来考察样本之间的可连接性,基于可连接样本不断扩展类簇以获得最终的聚类结果;用一组邻域参数(d,minPts)来刻画样本分布的紧密程度;
密度聚类涉及几个重要概念,领域、核心对象、密度直达、密度可达,密度相连
伪代码:

输入:样本集D, 邻域参数(d, minPts)
输出:簇划分C={C1,C2,…,Ck}
初始核心对象集合A为空集;
对于样本集中每个样本x:
  确定样本x的邻域,如果邻域中样本个数大于等于minPts,则将x加入A;
初始化聚类个数k=0;
初始化未访问样本集合B=D;
while A 不为空,do:
  记录当前未访问样本集合 Bold= B;#Bold记录的是处理当前核心对象前未访问的集合,B记录的是处理完当前核心对象后剩下的未访问集合;
  从A中随机选一个核心对象y,初始化队列Q=[y];
  B = B - y;
  while Q 不为空,do:
    取出Q中队首样本q;如果q的邻域中样本个数大于等于minPts,则求其邻域与B的交集 I,并加入队列Q中;B = B - I;
  k = k+1; 生成簇Ck=Bold-B;
  A = A-Ck;

4.层次聚类
  层次聚类试图在不同的层次对数据集进行划分,从而形成树形的聚类结构;可分为“自顶向下”和“自底向上”两种策略;在层次聚类中,关键是如何度量两个簇的距离,由于簇是一个集合,因此要采用关于集合的某种距离;
  两个集合的最小距离,定义为两个集合中最近的样本点的距离;
  两个集合的最大距离,定义为两个集合中最远的样本点的距离;
  平均距离,则是两个集合中所有样本对的距离的平均值;
算法伪代码:

输入:样本集D,有m个样本;距离度量函数d;聚类簇数k;
输出:簇划分C={C1,C2,…,Ck}
对于D中每个样本Xi:
   Ci = {Xi}
初始化每两个簇之间的距离矩阵;#是一个对称矩阵
初始化当前聚类个数q=m;
while q > m, do
  找出距离最近的两个聚类簇Ci*和Cj*;合并Ci*和Cj*,Ci*=Ci*UCj*;
  将从j*+1到q的簇的编号都减1;
  删除矩阵中第j*行和j*列;
  for j = 1,2,…,q-1:
    更新Ci*和Cj的距离
  q = q - 1

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值