ArcGIS应用之基于密的聚类分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ArcGIS应用之基于密度的聚类分析
我们生活在数据大爆炸时代,每时每刻都在产生海量的数据如视频,文本,图
像与博客等。由于数据的类型与大小已经超出了人们传统手工处理的能力范围。聚类,作为一种最常见的无监督学习技术,可以帮助人们给数据自动打标签,已经
获得了广泛应用。聚类的目的就就是把不同的数据点按照它们的相似与相异度分割成不同的簇(注意:簇就就是把数据划分后的子集),确保每个簇中的数据都就是尽可能相似,而不同的簇里的数据尽可能的相异。从模式识别的角度来讲,聚类就就是在发现数据中潜在的模式,帮助人们进行分组归类以达到更好理解数据的分布规律。
今天要跟大家分享的这个工具就跟聚类有关,它就是ArcGIS中一个空间模
式识别工具——基于密度的聚类分析。基于密度的聚类工具的工作原理就是检测点集中的区域以及被空的或稀疏的区域所分隔的区域。不属于聚类的点将被标记为噪点。
一、聚类的应用
•城市供水网络就是一种重要的隐形地下资产。管道破裂与爆裂的聚类可以指明潜在的问题。使用基于密度的聚类工具,工程师可以找到这些聚类的位置并对供水网络中的高危区域抢先采取行动。
•假设您拥有NBA 球员所有成功的与失败的投篮位置数据。基于密度的聚类可以显示每名球员成功与失败投篮位置的不同模式。然后可利用此信息告知比赛战术。
•假设您正在研究一种特别的害虫传播疾病,并且有一个代表您研究区域内家庭的点数据集,其中有些家庭已经被感染,有些家庭尚未被感染。通过使用基于密度的聚类工具,您可以确定受害家庭的最大聚类,以帮助确定一个区域以开始害虫的处理与消灭。
•可对自然灾害或恐怖袭击之后的地理定位推文进行聚类,根据所确定的聚类大小与位置报告救援与疏散需求。
•聚类可以将大规模的客户数据按照客户喜好进行归类,比如下图1展示了聚类后发现了3个簇。
图1 聚类的应用举例
二、功能定义
聚类算法很多,包括基于划分的聚类算法(如:k-means),基于层次的聚类算法(如:BIRCH),基于密度的聚类算法(如:DBSCAN),基于网格的聚类算法
( 如:STING )等等。本文将介绍聚类中一种最常用的方法——基于密度的聚类方法(density-based clustering)。
这个工具的核心功能就是检测点数据集中集聚区域与被空的或稀疏区域所分隔的区域。这个工具使用了非监督的机器学习聚类算法,这个算法并不需要预先针对聚类进行训练,仅根据空间位置与到指定邻域的距离通过最小聚类点数作为约束自动检测模式。详细的算法原理请参阅后面的原理分析部分。
三、使用工具步骤
可能大家一听到“非监督机器学习”,瞬间就会觉得这就是个很难使用的工具,事实上这个工具恰恰非常简单易用,如图2所示。输入与输出都很明确,也非常易于理解。
图2 非监督机器学习的过程
3、1输入参数
1.设置点图层,在大数据分析工具中,这个点图层的空间参考要求就是投影坐标系的,如
果数据本身不就是,那可以通过设置环境变量中的工具处理空间参考为投影坐标系,比如3857,来实现动态投影;
2.设置最小点数,这个值可以理解为最少多少个点可以被考虑为一个聚类,分析区内如
果点数低于这个值,说明密度低于临界值,过于稀疏,反之,这些点可以组成一个聚类;
3.设置搜索半径,这个值用于创建分析邻域,以分析点为中心,这个值为半径,就可以缓冲
一个圆,这个圆就可以用来判断中心点就是否属于哪个聚类或就是噪点;
4.设置输出图层名;
5.选择就是否仅分析当前地图范围的要素。
3、2分析过程
从输入参数与输出结果来判断,GA工具中的点聚类工具,后面对应的算法应该就是DBSCAN, 后面我还会细说这个算法,在这儿先大概描述下工具背后执行的逻辑:
1.针对待分析点先按照搜索半径生成缓冲区;
2.查询缓冲区范围内覆盖的点;
3.如果点数> 最小点数,就标识中心点属于某个聚类ID,然后再针对上面搜索到的点执
行buffer创建,根据判断条件标识聚类ID;
4.如果点数< 最小点数,就标识为噪点,重新跳回起点,分析下一个点;
按上面的循环迭代后,每个点都会被判断为属于某个聚类,或者就是噪点。
3、3 输出结果
这个工具的执行,输出结果非常明确,所有点要素会被区分为噪点或者某一聚类,至于结果输出多少类,完全取决于算法对数据的探索,当然约束条件就就是搜索半径与最小点数。
1.输出结果图层与输入点层的记录数完全一致
2.输出结果图层会增加CLUSTER_ID, COLOR_ID两个新字段,一个代表分类,一个代
表渲染ID。
图3 使用工具操作结果
说明:为何不直接使用CLUSTER_ID作为渲染字段?因为如果输出的聚类过多,使用过多的颜色渲染,反而会降低辨识度,因此默认最大选择8种颜色来循环渲染聚类,噪点使用灰色的小点来单独表达。
四、算法原理分析
DBSCAN 于1996年由Martin Ester, Hans-Peter Kriegel, Jörg Sander and Xiaowei Xu四个人最早提出,核心的思想就是通过计算邻域内点的密度,将距离近的点组成类,密度稀疏的点标注为噪点。DBSCAN可以说就是最常用高效的聚类算法。
这个算法的核心输入就是两个约束:最小聚类点数与搜索距离。
DBSCAN会针对要素点集合中的每个点(判断目标点或核心点),根据搜索距离创建一个邻域,对于GISer来说可以想象针对一个点按照搜索距离创建一个buffer, 通过这个buffer可以搜索出落入的所有点要素、,进一步就可以计算出这个邻域密度:
coreP_density = 邻域内点数(包含中心点)/ 邻域面积如何判断这个密度就是稠密还就是稀疏?显然还需要一个判断标准,这个标准就取决于最小点数密度:
minP_density = 最小点数/ 邻域面积
注意: 这个minP_density实际就是个常数,因为对于DBSCAN算法来说,邻域面积都就是相同的,最小点数也就是固定的。
DBSCAN的核心思想就就是比较这两个密度,如果核心点所在邻域的密度>临界密度,就创建聚类,或分配到某个已经存在的聚类,反之就标注为稀疏点。对于算法程序来说,有个取巧的办法,既然邻域面积相同,事实上直接比较点数就可以了,这样计算更快。
再通过下面的图,直观的来理解下DBSCAN聚类的方法:
图4 DBSCAN算法原理