宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

DBSCAN属于无监督学习算法。无监督算法的内涵是观察未标记的数据集,自动发现隐藏的结构和层次,在未标记的数据中发现隐藏的规则。

聚类模型在数据分析中的应用:可以作为一个单独的过程来发现数据的内在规律,也可以作为分类等其他分析任务的预探索。

一个

什么是DBSCAN?

DBSCAN是一种基于密度并考虑噪声的空间聚类算法。简单来说,给定一组点,DBSCAN将彼此非常接近的点(快乐菠萝距离)分组到一个类中,它还将低密度区域中的点标记为离群点。为了理解DBSCAN算法,让我们熟悉一些关键概念:

数据点密度:数据点指定半径内的点数称为密度;核心/核心点:如果指定半径()内的数据点数超过指定点数(Minpts),则该点称为核心点;边界点:如果一个点的半径()内的点数小于指定点数(Minpts),不能离线开发,但在核心点的邻域内,那么这个点称为边界点;密度可达:如果胡须枫叶点A在点B的邻域内,那么B就是核心点A的直接密度可达;如果C点在B点的邻域内,那么C点就是A点的间接可达密度,A和C的密度是连通的(传播过程);异常值/异常值:不在核心点邻域内,既不是核心点也不是边界点的点称为异常值;下图是一个例子。根据半径()圆化所有点,并将数据点的密度指定为3。我们发现下图中红点在指定半径内的密度为3,所以红点就是核心点。

而B点和C点在核心点的邻域内,但其半径内只有两个点,小于指定的密度,所以B点和C点是边界点;

点n不在核心点的邻域内,从任何一个核心点都无法达到密度,所以是离群点。以上点A和B,A和C是一致连通的;

聚类分析spss步骤聚类模型-风君子博客

10-1010算法根据指定的邻域密度参数(,Minpts)找出所有点的核心点,确定核心点集合为;从开始,随机选取一个核心点作为对象,找出密度可以达到的样本生成的所有簇;重复过程2,随机选择剩余的尚未在中聚类的核心点,继续进行,直到可以完全找到所有具有核心点密度的聚类;聚类分析spss步骤聚类模型-风君子博客

算法的优缺点

优势

不需要提前指定集群的数量。集群的形状和大小非常灵活。能够识别和处理异常值(离群值)的参数很少,只有两个缺点。

难以确定不适合高维数据的合理参数,参数对结果影响较大。在Sklearn中很难找到不同密度的聚类算法,对于数据点的形状和大小比较灵活,能够识别和处理异常值,聚类效果极佳,如下图所示:

聚类分析spss步骤聚类模型-风君子博客

00-101010

DBSCAN算法实现原理

案例背景:为了更好地服务线下门店,O2O平台增加了一项增值服务,即利用自身的地理位置数据定位线下门店。数据如下:

聚类分析spss步骤聚类模型-风君子博客

每条数据都是兴趣点的一个特征,兴趣点具体指的是以该位置为中心的500米半径圆内各种企业/设施的数量。我们在数据中隐藏了每个兴趣点的具体名称、坐标和类型。选择位置的商家将尝试选择这些位置中的一个作为下一个商店的位置。

商家想知道这40个潜在门店位置是否有显著差异。我们可以根据相似程度把所有的poi分成几类。

步骤

聚类分析spss步骤聚类模型-风君子博客

数据

准备:数据获取、数据清洗、数据变换等步骤,重点是针对分析目的,进行特征选择以及特征标准化;

数据建模:使用DBSCAN算法进行数据建模;

后续分析:聚类模型的特征描述分析,基于业务问题,进一步分析;

1、读取数据

聚类分析spss步骤聚类模型-风君子博客

2、特征选取

聚类分析spss步骤聚类模型-风君子博客

聚类分析spss步骤聚类模型-风君子博客

3、标准化

聚类分析spss步骤聚类模型-风君子博客

4、建立DBSCAN模型并可视化

聚类分析spss步骤聚类模型-风君子博客

聚类分析spss步骤聚类模型-风君子博客

5、聚类分析,对每一聚类进行进一步分析和描述

聚类分析spss步骤聚类模型-风君子博客

6、根据描述分析,生成poi聚类结果画像,利用聚类,对人群/商品/行为标签进行精细划分,作为进一步商业决策的基础;

聚类分析spss步骤聚类模型-风君子博客

以上DBSCAN聚类算法就讲完了,关于算法的参数选择通常是基于经验和对数据集的业务了解来确定,可以使用画k距离图的方式来找拐点然后通过观测聚类表现来调优。

作者:干净的外套 快手社区数据分析师,主要分享互联网数据分析、产品、运营相关方法论及思考总结。