zoukankan      html  css  js  c++  java
  • 浅谈聚类

    常用聚类方法一般有以下几种:

    基于距离的聚类算法:

      1、KMEANS

         流程:

          1)确定要聚类的数量K,并随机初始化中心点;

          2)通过计算当前点与每个组中心之间的距离,对每个数据点进行分类,然后归到与距离最近的中心组中;

          3)基于迭代后的结果,计算每一类内所有点的平均值;

          4)迭代这些步骤,或直到组中心在迭代之间变化不大;

          优点:

               速度快,计算量少,线性复杂性为o(n)

          缺点:

               须事先确定聚类的簇数量

          结论:

               当数据集中的聚类结果是非球状结构时,该聚类算法的聚类效果不理想。

    基于密度的空间聚类算法:

      2、MeanShift

         详细内容参考该链接:聚类算法之MeanShift

      3、DBSCAN(Density-based Spatial Clustering of Applications with Noise)

       将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,将簇定义为密度相连的点的最大集合。

       将数据点分为三类:

           1)核心点:样本xi的邻域内至少包含Minpts个样本,则称样本点为核心点

           2)边界点:样本xi的邻域内包含的样本数目小于MinPts,但是它在其他核心点的邻域内,则称样本点xi为边界点。

           3)噪音点:即不是核心点也不是边界点的点。

        有两个超变量:一个半径EPS,另一个是指定的数目MinPts。

           三个基本概念:

              密度直达(如果满足样本点p《NEPS(q)且NEPS(q)》=MinPts)

              密度可达(如果存在一系列样本点p1,...,pn(p1=q,pn=p),使得对于i=1,...,n-1,样本点pi+1可由样本点pi密度可达

              密度相连(如果存在一个样本点o,使得p与q均由样本点o密度可达)

          算法流程:

              1)根据给定的邻域参数EPS和minPts确定所有的核心对象

              2)对每一个核心对象,选择一个未处理过的核心对象,找到由其密度可达的样本生成聚类‘簇'

              3)重复以上过程

  • 相关阅读:
    在java中请求webservice接口并且处理xml解析实现代码
    uniapp微信小程序唤起微信支付
    微信二维码图片添加资料
    uniapp支付宝App支付编写(沙箱支付)
    Java之xlsx文件上传到服务器
    echarts中国省份坐标数据
    kafka参数配置
    docker
    mysql 异步复制,半同步复制
    centos7安装mysql
  • 原文地址:https://www.cnblogs.com/jimchen1218/p/11506251.html
Copyright © 2011-2022 走看看