LBS之六:时空聚类算法与场景应用实践

1 什么是时空聚类

空间聚类分析是空间数据挖掘与知识发现的主要手段之一,已广泛应用于地理学、地质学、气象学、地图学、天文学及公共卫生等诸多领域。时空聚类算法分析旨在从时空数据库中发现具有相似特征的时空实体结合(即时空簇),亦是传统的聚类分析从空间域到时空域的进一步扩展。时空聚类在全球气候变化、公共卫生安全、地震检测分析以及犯罪热点分析等领域具有重要应用价值,有助于更好地发现和分析地理现象发展变化的趋势、规律与本质特征。

通俗地说,聚类指的是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同数据尽量分离。另外,聚类方法是属于无监督的分类方式之一。

2 常用空间聚类算法简介

现有的时空聚类方法主要包括时空扫描统计方法、基于密度的方法以及基于时空距离的方法。 最近, Kisilevich 等对时空聚类分析方法进行了较为系统的阐述,其主要思想是采用一个预设的时空扫描窗口, 即由空间距离定义半径、时间间隔定义高度的圆柱体, 以每个时空实体为中心进行扫描, 借助统计检验的方法确定疾病爆发的聚集区域。 该方法一方面需要预先假定数据的概率分布模型, 且结果受扫描窗口的影响较大, 另一方面不能详细描述时空簇的位置和形状信息。

2.1 空间聚类算法分类

2.1.1 聚类算法划分

(1)基于层次的聚类

原理:试图在不同层次上对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略和“自顶向下”的拆分策略。

(2)基于分割(划分)的聚类

原理:首先要确定一堆散点最后聚成几类,然后挑选几个点作为初始中心点,再然后依据预先定好的启发式算法(heuristic algorithms)给数据点做迭代重置(iterative relocation),直到最后到达“类内的点都足够近,类间的点都足够远”的目标效果。

(3)基于密度的聚类

原理:定一个距离半径,最少有多少个点,然后把可以到达的点都连起来,判断为同类。

(4)基于网格的聚类

原理:将数据空间划分为网格单元,将数据对象集映射到网格单元中,并计算每个单元的密度。根据预设的阈值判断每个网格单元是否为高密度单元,密度足够大的网格单元形成簇。

(5)基于模型的聚类

原理:为每簇假定了一个模型,寻找数据对给定模型的最佳拟合,这一类方法主要是指基于概率模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。

2.1.2 聚类算法原理

1.基于层次的聚类

(1)算法流程

以下流程以自下向上为例。

a.将每个对象看作一类,计算两两之间的最小距离;

b. 将距离最小的两个类合并成一个新类;

c. 重新计算新类与所有类之间的距离;

d. 重复b, c, 直到所有类最后合并成一类。(在此我们了已选择我们需要多少个簇)

(2)代表算法:BIRCH、Chameleon、CURE等

2.基于划分的聚类

基于划分的聚类代表方法有:K-means及其变体包括k-medoids、k-modes、k-medians等、CLARA、PAM等算法。k-means算法流程:

a. 随机地选择k个对象,每个对象初始地代表了一个簇的中心;

b.对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;

c.重新计算每个簇的平均值,更新为新的簇中心;

d.不断重复b, c, 直到准则函数收敛。

3.基于密度的聚类

(1)算法流程

a.指定合适的r(点的半径)和M(在一个点半径内至少包含的点的个数);

b.计算所有的样本点,如果点p的r邻域里有超过M个点,则创建一个以p为核心点的新簇;

c.反复寻找这些核心点直接密度可达的点,将其加入到相应的簇,对于核心点发生"密度相连"状况的簇,给予合并;

d.当没有新的点可以被添加到任何簇,算法结束。

(2)代表算法:DBSCAN、OPTICS、DENCLUE等。

4.基于网格的聚类

(1)算法流程:

a.划分网格;

b.使用网格单元内数据的统计信息对数据进行压缩表达;

c.基于这些统计信息判断高密度网格单元 ;

d.最后将相连的高密度网格单元识别为簇。

(2)代表算法:STING、WaveCluster、CLIQUE等。

5.基于模型的聚类

这一类方法主要是指基于概率模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。

这里的概率模型主要指概率生成模型(generative Model),同一”类“的数据属于同一种概率分布,即假设数据是根据潜在的概率分布生成的。

代表算法:高斯混合模型(GMM)、SOM(Self Organized Maps)

2.1.3 各种算法的使用场景总结

2.1.4 各种算法的优缺点总结

2.2 常用空间聚类算法原理详解及实践

所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,将具有较高相异度的数据对象划分至不同类簇。聚类与分类最大的区别在于,聚类过程为无监督过程,即待处理数据对象没有任何先验知识,而分类过程为有监督过程,即存在有先验知识的训练数据集。

2.2.1 kmeans聚类

K-means算法是一种聚类算法,所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,将具有较高相异度的数据对象划分至不同类簇。聚类与分类最大的区别在于,聚类过程为无监督过程,即待处理数据对象没有任何先验知识,而分类过程为有监督过程,即存在有先验知识的训练数据集。

K-means算法中的 K 代表类簇个数, means 代表类簇内数据对象的均值(当有部分异常点时,求均值是不合理的,即一个特大都值,或者极小的值,会影响均值的数值),因此,K-means算法又称为k-均值算法,k-means算法是一种基于划分的聚类算法,以距离作为数据对象间相似性度量的标准,即数据对象间的距离越小,则它们的相似性越高,则它们越有可能在同一个类簇。数据对象间距离的计算有很多种,k-means算法通常采用欧氏距离来计算数据对象间的距离。

(1) K-means算法原理

K-means算法以距离作为数据对象间相似性度量的标准,通常采用欧氏距离来计算数据对象间的距离。下面给出欧式距离的计算公式 x 代表据具有 m 个属性的行向量)

k-means算法聚类过程中,每次迭代,对应的类簇中心需要重新计算(更新):对应类簇中所有数据对象的均值,即为更新后该类簇的类簇中心。定义第 K 个类簇的类簇中心为 Centerk ,则类簇中心更新方式如下:

其中, Ck 表示第 k 个类簇, |Ck|

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值