聚类概述

聚类: 数据对象的集合

  • 同一簇中的对象彼此相似
  • 不同簇中的对象彼此相异

聚类分析: 将数据对象(观测)的集合划分成子集过程

聚类是无监督的分类: 没有预先定 义的类编号

基于划分方法-k-means

k均值聚类算法

输入:簇的数目k和包含n个对象的数据库。 
输出:k个簇,使平方误差准则最小。 
算法步骤:  
1.为每个聚类确定一个初始聚类中心,这样就有K 个初始聚类中心。  
2.将样本集中的样本按照最小距离原则分配到最邻近聚类   
3.使用每个聚类中的样本均值作为新的聚类中心。 
4.重复步骤2.3直到聚类中心不再变化。 
5.结束,得到K个聚类 

这里写图片描述

伪代码

创建k个点作为起始质心(经常随机选择)
当任意一个点的簇分配结果发生改变时
    对于数据集中的每个数据点
        对每个质心
            计算质心于数据点之间的距离
        将数据点分配到距其最近的簇
    对于每个簇,计算簇中所有点的均值并将均值作为质心
  • 优点:容易实现
  • 缺点:
    K 是事先给定的,这个 K 值的选定是非常难以估计,常采用遗传算法(GA)进行初始化来改进
    存在噪点时,可能收敛到局部最小值
    在大规模的数据集上收敛较慢

适用数据类型:数值型数据

k中心点聚类

当存在噪声和离群点时
——k-中心点

当n和k的值较大时
——k-均值算法效率要高的多

基于层次方法

输入:包含n个对象的数据集
输出:簇的分层结构
算法步骤:
计算邻近度矩阵
每个点作为一个簇
Repeat
    合并最接近的两个簇
    更新邻近度矩阵
Until 仅剩下一个簇

这里写图片描述

  • 如果两个类被合并,那么将不能被恢复
  • 不同的聚类模式都有以下一个或多个问题:
    1.对噪音和异常点敏感
    2.处理不同大小的簇和凸起的形状的簇比较困难
    3.分割大的类

更多

基于密度方法

DBSCAN

基于密度定义,我们将点分为:

  • 稠密区域内部的点(核心点)
  • 稠密区域边缘上的点(边界点)
  • 稀疏区域中的点(噪声或背景点).

DBSCAN算法的本质就是随大流,边界点紧紧围绕着核心点,他们抱团,不带噪点玩儿

这里写图片描述

小团体多了,联系比较密切的小团体之间聚成了同个类
比较偏远的小团体想要加入这个圈子,进不去,就单干,我们自己玩自己的,聚成了另外的一个类
一开始就被孤立的噪点吧,自然有自己的傲骨,接着孤芳自赏

这里写图片描述

算法原理

DBSCAN通过检查数据集中每点的Eps邻域来搜索簇,如果点p的Eps邻域包含的点多于MinPts个,则创建一个以p为核心对象的簇。

然后,DBSCAN迭代地聚集从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并。

当没有新的点添加到任何簇时,该过程结束.
DBSCAN(D, eps, MinPts) {
   C = 0
   for each point P in dataset D {
      if P is visited
         continue next point
      mark P as visited
      NeighborPts = regionQuery(P, eps)
      if sizeof(NeighborPts) < MinPts
         mark P as NOISE
      else {
         C = next cluster
         expandCluster(P, NeighborPts, C, eps, MinPts)
      }
   }
}

expandCluster(P, NeighborPts, C, eps, MinPts) {
   add P to cluster C
   for each point P' in NeighborPts { 
      if P' is not visited {
         mark P' as visited
         NeighborPts' = regionQuery(P', eps)
         if sizeof(NeighborPts') >= MinPts
            NeighborPts = NeighborPts joined with NeighborPts'
      }
      if P' is not yet member of any cluster
         add P' to cluster C
   }
}

regionQuery(P, eps)
   return all points within P's eps-neighborhood (including P)

更多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值