DBSCAN文本聚类与python实现

1. 引言

    聚类算法作为分类任务中的无监督方法,在很多场景中都会用到,比如用户聚类、文档主题分类等等。常见的聚类算法大致可以分为两种,一种是基于分区的算法,如k-means等,这种方法虽然易于理解,但是有以下三个缺点:

  • 需要人为事先确定聚类的个数,当数据集比较大时,这是很难事先给出一个比较合适的值的。
  • 只适用于具有凸形状的簇,无法适用于具有任意形状的簇。
  • 对内存的占用资源比较大,很难推广到大规模数据集。

    另一种是基于层次划分的算法,如层次聚类法等,这种方法虽然不用事先确定聚类的个数,但是也存在以下缺点:

  • 需要确定停止分裂的条件
  • 计算速度慢。

因此,本文介绍另一个聚类算法——DBSCAN,该方法是基于密度的聚类方法,能够有效解决上面提到的各种问题。

2. DBSCAN聚类算法介绍

2.1 DBSCAN聚类相关概念

    DBSCAN是一种基于密度的聚类算法,其基本假设是一个集群的密度要显著高于噪声点的密度,因此,该方法的基本思想是对于集群中的每一个点,在给定的半径范围内,其相邻点的数量必须超过预先设定的某一个阈值
    在介绍DBSCAN算法之前,先介绍几个基本的概念:

  • Eps领域(Eps-neighborhood) :对于一个点,记其Eps领域为 N E p s ( p ) \mathrm{N}_{\mathrm{Eps}}(\mathrm{p}) NEps(p),则其定义如下:
    N E p s ( p ) = { q ∈ D ∣ dist ⁡ ( p , q ) ≤ E p s } \mathrm{N}_{\mathrm{Eps}}(\mathrm{p})=\{\mathrm{q} \in D | \operatorname{dist}(\mathrm{p}, \mathrm{q}) \leq \mathrm{Eps}\} NEps(p)={ qDdist(p,q)Eps}
    其中, D D D表示整个数据集集合, dist ⁡ ( p , q ) \operatorname{dist}(p, q) dist(p,q)表示点 p p p q q q的距离。
  • 直接密度可达(directly density-reachable):称一个点 p p p直接密度可达点 q q q,如果满足以下条件:
    p ∈ N E p s ( q ) ∣ N E p s ( q ) ∣ ≥ M i n P t s \mathrm{p} \in \mathrm{N}_{\mathrm{Eps}}(\mathrm{q}) \\ \left|\mathrm{N}_{\mathrm{Eps}}(\mathrm{q})\right| \geq \mathrm{MinPts} pNEps(q)NEps(q)MinPts
    其中,MinPts表示一个中心点的Eps领域必须包含的最小数量,需要事先确定。当点 p p p q q q都是一个集群的中心点时,则此时直接密度可达对两个点来说都是对称的,当时当 p p p是边界点时,则此时直接密度可达不是对称的,如下图所示。
    在这里插入图片描述
  • 密度可达(density-reachable):如果存在一串点 p 1 , … , p n , p 1 = q , p n = p \mathrm{p}_{1}, \dots, \mathrm{p}_{\mathrm{n}}, \mathrm{p}_{1}=\mathrm{q}, \mathrm{p}_{\mathrm{n}}=\mathrm{p} p1,,pn,p1=q,pn=p,有 p i + 1 \mathrm{p}_{\mathrm{i+1}} pi+1 p i \mathrm{p}_{\mathrm{i}} pi直接密度可达,那么就称 p p p q q q密度可达。
  • 密度相连(density-connected):如果存在一个点 o o
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值