首页 > 其他分享 >密度聚类

密度聚类

时间:2023-09-16 15:34:13浏览次数:21  
标签:varepsilon 距离 minPts 密度 聚类 半径

聚类算法可以划分为三大类,第一类是kmeans、DBSCAN、Density Peaks 依据密度的聚类方式;第二类是类似于层次聚类的依据树状结构的聚类方式;第三类是谱聚类,依据图谱结构的聚类方式.。

DBSCAN

DBSCAN是一种密度聚类,他不要求指定聚类中心数量,能够避免异常值,对非球形的形状也可以聚起来,这些都是kmeans做不到的。DBSCAN依赖两个参数进行聚类:

$\varepsilon $ 半径。用于扩展簇时的搜索半径范围

minPts 最小点。用于扩展簇时判定是否将点纳入簇内

算法的流程如下

  1. 初始化:选取一个点,要求该点在$\varepsilon $ 半径范围内拥有至少minPts个点(包括该点本身),这个点被记为核心点
  2. 遍历在核心点半径内的其他点。如果其他点的$\varepsilon $ 半径范围内,同样具有至少minPts个点,那么同样记该点为核心点;如果这个点半径内没有minPts个点,则记这个点为边界点。
  3. 重复第2步,直到选完所有核心点和边界点

 

如何确定最优$\varepsilon $?用不同的$\varepsilon $计算每个点到半径内邻居的平均距离,将他们画在图上,y轴表示平均距离,x轴表示半径,用手肘法,找到手肘的位置,则为$\varepsilon $的合适取值

如何确定最优minPts?通常设置minPts为数据的维度的1到2倍。

 

 

Density Peaks

Density Peaks 又叫峰值密度聚类,局部密度聚类。它的聚类基于两点假设:1、簇中心的局部密度要大于围绕他的点的局部密度。2、不同簇中心距离较远。

$\rho_{i}$ 局部密度。给定$d_{ij}$表示ij两点之间的距离,设置超参数$d_{c}$,点i的局部密度$\rho_{i}$,是所有$d_{ij}<d_{c}$  的点的个数。

$\delta_{i}$ 聚类中心距离。确定每个点的聚类中心距离,分为两种情况:

  1. 密度最大的点的聚类中心距离,等于距离i点最远的点n的直线距离$d_{in}$。
  2. 其他点的中心距离,等于所有密度大于自身的点中,距离最近的点的直线距离。
  3. 最后需要做归一化处理,距离最大的点(也就是密度最大的点),它的距离定为1

当有了$\rho_{i}$  和 $\delta_{i}$ 后,将密度和距离分别作为横轴和纵轴绘制出二维决策图

看右侧的图,右上角区域的是聚类的核心点,它的密度大,且距离其他的核心点比较远。右下角虽然密度大,但是周围也有很多密度大的点,距离比较近,不适合做聚类中心。左上角的点密度小,距离其他点也远,属于孤立点,不适合做聚类中心。 

应用中,可以用$\rho_{i} * \delta_{i}$ 排序,选取前K个点作为中心点。

标签:varepsilon,距离,minPts,密度,聚类,半径
From: https://www.cnblogs.com/4PrivetDrive/p/17704082.html

相关文章

  • 数据分享|MATLAB、R基于Copula方法和k-means聚类的股票选择研究上证A股数据|附代码数
    全文链接:http://tecdat.cn/?p=31733最近我们被客户要求撰写关于Copula的研究报告,包括一些图形和统计输出。Copula方法是测度金融市场间尾部相关性比较有效的方法,而且可用于研究非正态、非线性以及尾部非对称等较复杂的相依特征关系因此,Copula方法开始逐渐代替多元GARCH模型的相......
  • 简单的经纬度点聚类
    importlogginglogging.basicConfig(level=logging.INFO,format='%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s',datefmt='%Y-%m-%d%H:%M:%S')fromgeopy.distanceimportgeod......
  • 空间密度算法DBSCAN和K-means聚类算法有什么区别和联系
    DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise)和K-means是两种常见的聚类算法,它们有一些区别和联系。区别:原理:K-means是基于距离的划分聚类算法,通过最小化数据点与聚类中心之间的平方误差来进行聚类。DBSCAN是基于密度的聚类算法,通过将密度相连接的数据......
  • 统计分析 -- 聚类算法模型
    统计分析--聚类算法模型距离分析数据标准化欧氏距离与量纲有关,因此,有时需要对数据进行预处理,如标准化等。在MATLAB中的命令是zscore,调用格式Z=zscore(X)输入X表示N行p列的原始观测矩阵,行为个体,列为指标。输出Z为X的标准化矩阵:Z=(X–ones(N,1)*mean(X))./(ones(N,1)*......
  • R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化(带自测题)|附代
    全文链接:http://tecdat.cn/?p=27546原文出处:拓端数据部落公众号最近我们被客户要求撰写关于二手车汽车销售数据的研究报告,包括一些图形和统计输出。本文用爬虫采集了汽车销售数据,后来对其进行了扩展,创建这个数据集,其中包括境内的所有二手车辆或者经销商车辆条目数据。这些数据......
  • 什么是前端开发领域中的屏幕像素密度 Pixel Density
    当谈论到前端开发中的像素密度(PixelDensity),实际上是在讨论设备屏幕的像素密度,也称为像素密度或PPI(PixelsPerInch)。像素密度是指屏幕上每英寸(2.54厘米)所包含的像素数量。它是一个重要的概念,因为不同的设备在相同尺寸的屏幕上可能拥有不同的像素密度,从而影响显示效果和图像质量。......
  • 拓端tecdat|R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人
    最近我们被客户要求撰写关于k-means聚类的研究报告,包括一些图形和统计输出。简介假设我们需要设计一个抽样调查,有一个完整的框架,包含目标人群的信息(识别信息和辅助信息)。如果我们的样本设计是分层的,我们需要选择如何在总体中形成分层,以便从现有的辅助信息中获得最大的优势。换句话......
  • 书写自动智慧文本分类器的开发与应用:支持多分类、多标签分类、多层级分类和Kmeans聚类
    书写自动智慧文本分类器的开发与应用:支持多分类、多标签分类、多层级分类和Kmeans聚类文本分类器,提供多种文本分类和聚类算法,支持句子和文档级的文本分类任务,支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类,开箱即用。python3开发。Classifier支持算法[x]Logistic......
  • 拓端tecdat|R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人
    原文链接:http://tecdat.cn/?p=23038原文出处:拓端数据部落公众号最近我们被客户要求撰写关于k-means聚类的研究报告,包括一些图形和统计输出。简介假设我们需要设计一个抽样调查,有一个完整的框架,包含目标人群的信息(识别信息和辅助信息)。如果我们的样本设计是分层的,我们需要选择......
  • MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩|附代码数据
    全文链接:http://tecdat.cn/?p=30832最近我们被客户要求撰写关于K-Means(K-均值)聚类算法的研究报告,包括一些图形和统计输出。本文首先阐明了聚类算法的基本概念,介绍了几种比较典型的聚类算法,然后重点阐述了K-均值算法的基本思想,对K-均值算法的优缺点做了分析,回顾了对K-均值改进......