掌桥专利:专业的专利平台
掌桥专利
首页

确定地理区域的组团数据的方法、计算设备和存储介质

文献发布时间:2023-06-19 11:52:33


确定地理区域的组团数据的方法、计算设备和存储介质

技术领域

本发明概括而言涉及计算机软件领域,更具体地,涉及一种用于确定地理区域的组团数据的方法、计算设备和计算机可读存储介质。

背景技术

对城市内部或者若干个城市之间的人员流动或迁徙进行研究具有重要意义。例如,其可以用于指导城市各项公共设施或商业设施的规划、指导特定城市出台相关政策以吸引人才等。当前,这些研究通常通过静态采集人口数据来获得。例如,对城市内部的人员的居住和工作情况进行研究时通常以选定居住地为中心,一定的空间距离(如一公里)、时间距离(如十五分钟等时圈)为边界来划定城市内的不同生活圈并对这些生活圈内的人口数据进行统计。

然而,真实的人群活动轨迹并不局限于静态的空间或等时圈半径范围,这种简单的划分方式忽略了人迹活动的独特性与空间异质性,不能真正体现真实的生活圈分布,更不能体现城市生活圈的变化。

发明内容

针对上述问题,本发明通过采集特定地理区域内的栅格级定位数据来搭建栅格联系网络,应用社区发现算法来更加准确地识别该特定地理区域内的各个组团结构。

根据本发明的一个方面,提供了一种确定地理区域的组团数据的方法。该方法包括: 获取所述地理区域的多个栅格的栅格数据;获取所述地理区域内的多个人员的定位数据,并且基于每个人员的定位数据和所述栅格数据确定所述人员的轨迹数据;基于所述多个人员的轨迹数据确定所述多个人员中从所述多个栅格中的第一栅格到第二栅格的转移人数以构建样例数据集合,样例数据集合中的每条样例数据包括第一栅格、第二栅格以及所述多个人员中从第一栅格到第二栅格的转移人数;利用社区发现算法将所述多个人员的样例数据集合聚类为多个簇,以获得每个栅格所属的簇标签;以及对属于同一簇标签的栅格进行融合以确定与该簇标签相对应的组团数据。

根据本发明的另一个方面,提供了一种计算设备。该计算设备包括:至少一个处理器;以及至少一个存储器,该至少一个存储器被耦合到该至少一个处理器并且存储用于由该至少一个处理器执行的指令,该指令当由该至少一个处理器执行时,使得该计算设备执行根据上述方法的步骤。

根据本发明的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,该计算机程序代码在被运行时执行如上所述的方法。

在一些实施例中,其中获取所述地理区域内的多个人员的定位数据,并且基于每个人员的定位数据和所述栅格数据确定所述人员的轨迹数据包括:获取预定时间周期内所述地理区域内的多个人员在至少一个特定时间段的定位数据;基于每个人员在每个特定时间段的定位数据和所述栅格数据确定所述人员的第一栅格和第二栅格;以及基于每个人员的第一栅格和第二栅格确定所述多个人员在所述预定时间周期内的轨迹数据。

在一些实施例中,其中基于所述多个人员的轨迹数据确定所述多个人员中从所述多个栅格中的第一栅格到第二栅格的转移人数以构建样例数据集合包括:基于所述多个人员的轨迹数据确定所述多个人员中从所述多个栅格中的第一栅格到第二栅格的转移人数,以构建初始样例数据集合,其中所述第一栅格与所述第二栅格不同;以及从所述初始样例数据集合中删除所述第一栅格和所述第二栅格之间的距离满足预定阈值的样例数据以获得所述样例数据集合。

在一些实施例中,其中利用社区发现算法将所述多个人员的样例数据集合聚类为多个簇,以获得每个栅格所属的簇标签包括:计算初级簇的第一模块度,所述初级簇包括所述多个栅格中的至少一个栅格;将所述初级簇的至少一个相邻栅格依次组合到所述初级簇并计算所述初级簇的至少一个第二模块度;确定所述至少一个第二模块度与所述第一模块度之间的至少一个模块度差值;确定所述至少一个模块度差值中的最大模块度差值;以及更新所述初级簇以包含与所述最大模块度差值对应的相邻栅格。

在一些实施例中,其中更新所述初级簇以包含与所述最大模块度差值对应的相邻栅格还包括:确定所述最大模块度差值是否大于零;以及响应于确定所述最大模块度差值大于零,更新所述初级簇以包含与所述最大模块度差值对应的相邻栅格。

在一些实施例中,其中计算初级簇的第一模块度包括:基于所述多个栅格之间的转移人数之和、所述初级簇内的栅格之间的转移人数之和以及所述初级簇内的栅格与所述初级簇外的栅格之间的转移人数之和计算所述初级簇的第一模块度。

在一些实施例中,该方法还包括:遍历所述多个栅格以产生多个初级簇;将所述多个初级簇中的每个初级簇中的栅格归并为一个超节点以产生多个超节点;根据两个超节点中的栅格之间的转移人数确定所述两个超节点之间的转移人数;计算一个超节点的第三模块度;将所述超节点的至少一个相邻超节点依次组合到所述超节点中并计算所述超节点的至少一个第四模块度;确定所述至少一个第四模块度中与所述第三模块度之间的至少一个模块度差值;确定所述至少一个模块度差值中的最大模块度差值;以及更新所述超节点以包含与所述最大模块度差值对应的相邻超节点。

在一些实施例中,构建样例数据集合之后还包括:基于所述样例数据集合构建所述地理区域的人迹图,其中所述人迹图的节点指示所述多个栅格中的一个栅格,两个节点之间的连线指示从两个节点中的一个节点向另一个节点转移的人员轨迹,连线的权重指示从两个节点中的一个节点到另一个节点的转移人数。

在一些实施例中,确定与该簇标签相对应的组团数据之后还包括:基于与每个簇标签对应的所有栅格的地理信息产生与所述簇标签对应的地理栅格面文件;以及基于与每个簇标签对应的地理栅格面文件和所述簇标签对应的栅格的数量在电子地图上显示各个簇标签对应的组团数据。

附图说明

通过参考下列附图所给出的本发明的具体实施方式的描述,将更好地理解本发明,并且本发明的其他目的、细节、特点和优点将变得更加显而易见。

图1示出了根据本发明的实施例的用于确定地理区域的组团数据的设备的示意图。

图2示出了地理区域的电子地图的示例性示意图。

图3示出了根据本发明的实施例的用于确定地理区域的组团数据的方法的流程图。

图4示出了根据本发明一种实施例的确定人员的轨迹数据的步骤的流程图。

图5示出了根据本发明一些实施例构建的人迹图的示意图。

图6示出了根据本发明的实施例的用于将样例数据集合聚类为多个簇的步骤的示例性流程图。

图7示出了根据本发明一些实施例产生的初级簇的示意图。

图8示出了根据本发明一些实施例的超节点的示意图。

图9示出了包含根据本发明产生的各个组团的地理区域的电子地图的示意图。

图10示出了适合实现本公开的实施例的计算设备的结构方框图。

具体实施方式

下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整的传达给本领域的技术人员。

在下文的描述中,出于说明各种发明的实施例的目的阐述了某些具体细节以提供对各种发明实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。

除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。

在整个说明书中对“一个实施例”或“一些实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一些实施例”中的出现不一定全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。

此外,说明书和权利要求中所用的第一、第二等术语,仅仅出于描述清楚起见来区分各个对象,而并不限定其所描述的对象的大小或其他顺序等。

图1示出了根据本发明的实施例的用于确定地理区域的组团数据的设备100的示意图。如图1中所示,设备100可以包括栅格数据获取单元102、轨迹数据确定单元104、样例数据集合构建单元106、聚类单元108和组团确定单元110。栅格数据获取单元102用于获取一个地理区域的多个栅格的栅格数据。轨迹数据确定单元104用于获取该地理区域内的多个人员的定位数据,并且基于每个人员的定位数据和栅格数据获取单元102获取的栅格数据确定人员的轨迹数据。样例数据集合构建单元106用于基于轨迹数据确定单元104获取的多个人员的轨迹数据确定多个人员中从多个栅格中的第一栅格到第二栅格的转移人数,以构建样例数据集合,其中样例数据集合中的每条样例数据包括第一栅格、第二栅格以及多个人员中从第一栅格到第二栅格的转移人数。聚类单元108用于利用社区发现算法将样例数据集合构建单元106得到的多个人员的样例数据集合聚类为多个簇,以获得每个栅格所属的簇标签。组团确定单元110用于对属于同一簇标签的栅格进行融合以确定与该簇标签相对应的组团数据。栅格数据获取单元102、轨迹数据确定单元104、样例数据集合构建单元106、聚类单元108和组团确定单元110的具体功能将在下面参考图2至图9进行描述。

设备100可以包括至少一个处理器和与该至少一个处理器耦合的至少一个存储器,该存储器中存储有可由该至少一个处理器执行的指令,该指令在被该至少一个处理器执行时执行如下所述的方法300的至少一部分。栅格数据获取单元102、轨迹数据确定单元104、样例数据集合构建单元106、聚类单元108和组团确定单元110中的至少一部分可以实现为单独的硬件(如芯片),或者可以分别由上述指令的一部分来实现为软件形式。设备100的具体结构例如可以如下结合图10所述。

图2示出了地理区域200的电子地图的示例性示意图。地理区域200可以为一个城市(例如图2中示出了上海市),也可以为一个城市的一部分,以用于研究该地理区域内的人员工作和生活的区域分布。或者,地理区域200还可以包括多个城市或者多个城市的各自的至少一部分。例如,地理区域200可以是长三角的若干个城市组成的区域,以用于研究该区域内人口分布和流动的情况。

地理区域200的电子地图可以是由专业的地图数据提供商(如百度、谷歌或高德等)提供的电子地图数据在设备100上渲染产生的可视化地图。该电子地图数据例如可以包括该地理区域200的各个地理位置的点数据或者各个栅格的面数据,如下所详述。注意,在本文所述的方法中,并不必须以可视化地图形式展示中间或最终处理结果,本文提供各个电子地图只是为了便于更好地理解本发明。

图3示出了根据本发明的实施例的用于确定地理区域的组团数据的方法300的流程图。方法300可以由图1中所示的设备100执行。以下结合图1至图9对方法300进行描述。

如图3中所示,方法300包括步骤310,其中设备100(例如栅格数据获取单元102)获取地理区域200的多个栅格的栅格数据。

这里,取决于获取组团数据的目的,栅格的大小可以设置得不同。例如,如果获取组团数据的目的是研究城市人口在城市的不同部分居住和工作的情况,从而判断城市人口的生活圈(生活圈是组团的一种形式),则可以将地理区域200(例如如图2所示的一个城市)划分为边长为几百米的栅格(例如边长为250米)。又例如,如果获取组团数据的目的是研究人口在多个城市之间的分布和流动情况,则可以将地理区域200(例如为由多个城市组成的区域)划分为边长为几千米或几十千米的栅格。假设地理区域200横向被划分为M份、纵向被划分为N份,即地理区域200被划分为M*N个栅格。

栅格数据可以包括每个栅格的栅格ID和地理信息,如下面的表1所示。

在一些实施例中,如表1所示,栅格ID可以由栅格的横向和纵向的二维编号来表示。例如,地理区域200中的第一行第一列的栅格可以表示为栅格1-1,第一行第二列的栅格可以表示为栅格1-2……第一行第M列的栅格可以表示为栅格1-M,第二行第一列的栅格可以表示为栅格2-1,第二行第二列的栅格可以表示为栅格2-2……第N行第M列的栅格可以表示为栅格N-M。在另一些实施例中,栅格ID也可以由栅格的一维连续编号来表示。

栅格的地理信息是指该栅格的电子地图数据,如该栅格内的各个地理位置的点数据或者该栅格的面数据。在本文中,以栅格为单位对人员移动进行统计,因此使用栅格的面数据(如表1所示的POLYGON文件)作为该栅格的地理信息。此外,栅格的面数据也可以通过栅格内的各个地理位置的点数据得到。

接下来,在步骤320,设备100(例如轨迹数据确定单元104)获取该地理区域200内的多个人员的定位数据,并且基于每个人员的定位数据和步骤310获取的栅格数据确定每个人员的轨迹数据。这里,定位数据可以是通过移动运营商采集的各个人员的手持终端的移动定位数据,也可以是通过各个人员的手持终端采集的该手持终端的GPS信号等。对于每个人员来说,可以通过获取他的至少两个定位数据来确定他的移动轨迹。这里,出于大数据分析的目的,该多个人员的数量通常较大,例如至少为几千人。

图4示出了根据本发明一种实施例的确定人员的轨迹数据的步骤320的流程图。在本文中,为了获得各个人员所属的组团(生活圈),通常需要统计该人员在一个预定时间周期(例如,一个星期、一个月、一年、三年等)内的轨迹数据。

具体地,步骤320可以包括子步骤322,其中设备100获取该预定时间周期内该地理区域200内的多个人员在至少一个特定时间段的定位数据。该特定时间段可以是人员发生移动的可能性最高的时间段。例如,可以是工作日(周一至周五)的早上7:00至10:00的时间段(该时间段通常会出现从家里到工作单位的移动,移动的起点和终点可以分别指示该人员的居住位置和活动位置(如工作位置))和/或是下午5:00至8:00的时间段(该时段通常会出现从工作单位到家里的移动,移动的起点和终点可以分别指示该人员的活动位置(如工作位置)和居住位置)。或者,该特定时间段也可以是人员几乎不发生移动的时间段。例如,可以是晚上10:00至早上7:00和早上10:00至下午5:00,这两个时间段被认为分别是休息时间和工作时间,因此在这两个时间段内的定位数据可以分别指示该人员的居住位置和活动位置(如工作位置)。这样的预定时间段的选择可以用于确定每个人员的居住位置和工作位置之间的关系,以用于分析城市的居住和工作热点地区。

此外,该预定时间段还可以是周末的上午的时间段(该时间段通常会出现从家里到休闲场所的移动,移动的起点和终点可以分别指示该人员的居住位置和活动位置(如休闲位置))。这样的预定时间段的选择可以用于确定每个人员的居住位置和休闲位置之间的关系,以用于分析城市的居住和消费热点地区。

接下来,在子步骤324,设备100可以基于子步骤322获取的每个人员在每个特定时间段的定位数据和步骤310获得的栅格数据确定每个人员的第一栅格和第二栅格。这里,第一栅格例如可以是居住栅格,第二栅格例如可以是活动栅格。以下,分别以“居住栅格”和“活动栅格”为例来描述第一栅格和第二栅格。但是本领域技术人员可以理解,本发明并不局限于此。

在一种实施例中,如上所述,该至少一个特定时间段是人员发生移动的可能性最高的时间段,如工作日(周一至周五)的早上7:00至10:00的时间段。在这种情况下,可以将人员移动的起点所处的栅格确定为居住栅格,而将人员移动的终点所处的栅格确定为活动栅格。在另一种实施例中,该至少一个特定时间段是人员几乎不发生移动的时间段,如晚上10:00至早上7:00(第一时间段)和早上10:00至下午5:00(第二时间段)这两个时间段。在这种情况下,可以将第一时间段期间人员所处的栅格确定为居住栅格,将第二时间段期间人员所处的栅格确定为活动栅格。在进一步的实施例中,还可以基于该人员在一个更长的时间周期(例如一个月)内在该特定时间段的定位数据和栅格数据来确定该人员的居住栅格和活动栅格。更具体地,可以基于该人员在该时间周期内在该特定时间段内出现的概率最高的栅格来确定居住栅格和活动栅格。例如,假设一个人员在一个月的时间周期(以30天为例)内,在第一时间段内处于栅格A的天数为25天(概率为83%),在第二时间段内处于栅格B的天数为18天(概率为60%),因此可以将栅格A确定为该人员的居住栅格,将栅格B确定为该人员的活动栅格。

接下来,在子步骤326,设备100可以基于每个人员的第一栅格和第二栅格确定该人员在该预定时间周期内的轨迹数据。轨迹数据可以包括在子步骤324确定的该人员的第一栅格和第二栅格。在一些实施例中,轨迹数据还可以包括该人员在该预定时间周期内从第一栅格向第二栅格的转移次数。例如,每个人员在该预定时间周期(例如一个月)内的轨迹数据可以表示为如下表2的形式。

注意,如果至少一个特定时间段包括早上7:00至10:00和下午5:00至8:00这两个时间段,则在一天内得到的同一人员在居住栅格与活动栅格之间的移动可能是两次,但是将其统计为从居住栅格到活动栅格的转移次数为1。

继续图3,接下来,在步骤330,设备100(例如样例数据集合构建单元106)可以基于步骤320得到的多个人员的轨迹数据确定这多个人员中从第一栅格到第二栅格的转移人数,以构建样例数据集合。样例数据集合中的每条样例数据可以包括第一栅格、第二栅格以及多个人员中从第一栅格到第二栅格的转移人数。样例数据集合例如可以是如下表3所示的形式。

注意,表3中,每条样例数据可以包括(在该预定时间段内)从第一栅格到第二栅格的转移人数。例如,在表2中,可以将从栅格100-100到栅格100-101的转移人数统计为2人并将其作为表3中与居住栅格100-100和活动栅格100-101对应的转移人数。在这种情况下,可以不考虑表2中的每个人员的转移次数。根据需要,在一些其他实施例中,每条样例数据可以包括(在该预定时间段内)从第一栅格到第二栅格的转移人次数。例如,可以将表2中的人员1和人员2从栅格100-100到栅格100-101的转移次数相加,并且以转移次数之和(30)作为表3中与居住栅格100-100和活动栅格100-101对应的转移人数(即,转移人次数)。

在一些实施例中,根据方法300的执行目的,可以对表3的样例数据集合进行预处理。

具体地,可以将按照上述方式构建的样例数据集合称为初始样例数据集合。在判断城市人口的生活圈的应用中,有意义的样例数据应当是居住栅格和活动栅格不同(即发生了跨栅格的移动)并且居住栅格和活动栅格之间的距离在预定范围内。

在这种情况下,设备100可以从初始样例数据集合中删除第一栅格和第二栅格之间的距离满足预定阈值的样例数据以获得最终的样例数据集合。例如,预定阈值可以是几公里(如10公里或5公里)。因此,设备100可以从初始样例集合中删除第一栅格和第二栅格之间的距离大于该预定阈值的样例数据以获得最终的样例数据集合。通过这种方式,可以根据应用的目的对原始样例数据集合进行筛选以选择更加符合统计需求的样例数据。

以表3为例,在研究城市生活圈的应用中,从居住栅格1-1到活动栅格125-125的距离可能远远大于10公里,这部分样例数据对于城市生活圈的判断几乎没有意义,因此可以从样例数据集合中删除该样例数据,预处理后的样例数据集合如表4所示。

此外,在一些实施例中,可以利用图论的方法将步骤330得到的样例数据集合构建为地理区域200的人迹图。具体地,人迹图的节点指示多个栅格中的一个栅格,两个节点之间的连线指示从两个节点中的一个节点向另一个节点转移的人员轨迹,连线的权重指示从两个节点中的一个节点到另一个节点的转移人数。图5示出了根据本发明一些实施例构建的人迹图500的示意图。

如图5中所示,根据表3或表4所示的样例数据集合,将每个栅格作为人迹图500中的一个节点,例如图5示出了5个节点,即栅格100-101、栅格100-103、栅格99-102、栅格50-54和栅格1-1。两个节点之间的连线(有向)指示从两个节点中的一个节点向另一个节点转移的人员轨迹,连线的权重指示从两个节点中的一个节点到另一个节点的转移人数。例如,在图5中,从栅格100-103到栅格100-101的转移人数是80,从栅格100-103到栅格99-102的转移人数是120,从栅格99-102到栅格100-103的转移人数是100,从栅格99-102到栅格50-54的转移人数是5,从栅格50-54到栅格1-1的转移人数是100。

继续图3,接下来,在步骤340,设备100(例如聚类单元108)利用社区发现算法将多个人员的样例数据集合聚类为多个簇,以获得每个栅格所属的簇标签。社区发现(Community Detection)算法用来发现网络中的社区结构,其可以看做是一种聚类算法,即根据不同节点之间的连接关系的紧密程度将不同节点划分为不同社区(簇),从而同一社区内的节点之间的连接关系相对紧密,不同社区的节点之间的连接关系相对稀疏。在本发明中可以使用各种社区发现算法,如GN算法、标签传播算法、随机游走算法等。在以下的实施例中,使用基于模块度的社区发现算法来对样例数据集合中的样例数据进行聚类。基于模块度的社区发现算法例如可以包括Louvain算法和Newman快速算法等,以下以Louvain算法为例进行详细描述。

图6示出了根据本发明的实施例的用于将样例数据集合聚类为多个簇的步骤340的示例性流程图。利用社区发现算法进行聚类是一种迭代的聚类方法,在初始时,可以将每个栅格划分为一个簇(即社区)。随着迭代的进行,簇的大小可能会增大,直至最终满足收敛条件时,簇不再增大,此时得到的各个簇即为整个聚类的结果。

如图6中所示,步骤340可以包括子步骤341,其中设备100计算初级簇的第一模块度。这里,初级簇可以包括步骤310得到的多个栅格中的至少一个栅格。在第一次迭代(初始化)时,将每个栅格划分为一个簇,从而初级簇仅包含一个栅格,而在之后的迭代中,一个簇可能包含多于一个栅格。

在一种实施例中,可以基于样例数据集合中的栅格的数量(即如图5所示的人迹图中的节点的数量)、该簇内的栅格之间的转移人数之和(即如图5所示的人迹图中的一个簇内的节点之间的连线的权重之和)以及该簇内的栅格与该簇外的栅格之间的转移人数之和(即如图5所示的人迹图中的一个簇内的节点与簇外的节点之间的连线的权重之和)来计算该簇的模块度。更具体地,可以通过如下公式(1)来计算模块度:

其中,m指示如表3或表4所示的样例数据集合中所有栅格之间的转移人数之和,

例如,如图5中所示,假设初级簇c1包括栅格100-101和栅格100-103,则

接下来,在子步骤342,设备100将初级簇c1的至少一个相邻栅格依次组合到初级簇c1中并分别计算更新后的初级簇c1的模块度。这里,仍然可以利用上述公式(1)来计算更新后的初级簇c1的模块度(称为第二模块度)Q2。

例如,如图5中所示,假设将栅格99-102放入初级簇c1,此时更新后的初级簇c1包 括栅格100-101、栅格100-103和栅格99-102,则

取决于初级簇c1的相邻栅格的数量,子步骤342可能得到一个或多个第二模块度Q2。

在子步骤343,设备100可以确定该至少一个第二模块度Q2与第一模块度Q1之间的至少一个模块度差值ΔQ=Q2-Q1。

在子步骤344,设备100可以确定至少一个模块度差值ΔQ中的最大模块度差值max{ΔQ},并且在子步骤345更新初级簇c1以包含与最大模块度差值max{ΔQ}对应的相邻栅格。

在这种实施例中,由于最大模块度差值max{ΔQ}并不一定总为正值,因此存在着将最大模块度差值max{ΔQ}对应的相邻栅格加入初级簇c1之后,初级簇c1的模块度反而降低的情况。为此,在一些实施例中,在子步骤345中,可以进一步确定最大模块度差值max{ΔQ}是否大于零,并且只有在最大模块度差值max{ΔQ}大于零时,才将最大模块度差值max{ΔQ}对应的相邻栅格加入该初级簇c1中。

设备100可以利用基于模块度的社区发现算法按照图6所示的方式遍历步骤310获得的多个栅格以产生多个初级簇。在一些实施例中,这样得到的多个初级簇可以作为步骤340的最终结果,并且可以根据每个栅格属于哪个初级簇来确定该栅格所属的簇标签。图7示出了根据本发明一些实施例产生的初级簇的示意图。如图7中所示,在对所有栅格遍历了上述子步骤341至345之后,图5所示的人迹图500中的所有节点被聚类为两个初级簇,即第一初级簇510和第二初级簇520,其中第一初级簇510包括栅格100-101、100-103和99-102,第二初级簇520包括栅格50-54和1-1。

在另一些实施例中,如上得到的多个初级簇被认为是地理区域200中的多个栅格的初步聚类的结果,即产生了地理区域200的多个小社区。步骤340还可以包括将这些小社区进一步聚类以产生更大的社区。

具体地,设备100可以将每个初级簇中的栅格归并为一个超节点以将上述得到的多个初级簇归并为多个超节点。每个超节点可以包括对应的初级簇中的栅格,根据两个超节点中的一个超节点中的栅格到另一超节点中的栅格的转移人数确定这两个超节点之间的转移人数。图8示出了根据本发明一些实施例的超节点的示意图。如图8中所示,第一初级簇510中的栅格100-101、100-103和99-102被归并为超节点S1,第二初级簇520中的栅格50-54和1-1被归并为超节点S2,其中超节点S1到超节点S2的转移人数为5。这里,图7所示的第一初级簇510和第二初级簇520之间仅有第一初级簇510中的栅格99-102与第二初级簇520中的栅格50-54之间存在连线,因此超节点S1到超节点S2的转移人数即为第一初级簇510中的栅格99-102到第二初级簇520中的栅格50-54的转移人数。然而本领域技术人员可以理解,本发明并不局限于此,如果第一初级簇510中的其他栅格与第二初级簇520中的其他栅格之间存在连线(即存在转移人数),则超节点S1到超节点S2的转移人数等于超节点中的任意栅格到超节点S2中的任意栅格的转移人数之和。

在将每个初级簇归并为一个超节点之后,在步骤340,设备100可以按照如上所述的子步骤341至345类似的方法进一步对超节点进行聚类。

具体地,设备100可以计算一个超节点的模块度。这里,可以按照上述公式(1)来计算超节点的模块度(为了与初级簇的模块度进行区分,这里将超节点的模块度称为第三模块度)Q3。然后,设备100可以将该超节点的至少一个相邻超节点依次组合到该超节点中并计算更新后的超节点的至少一个模块度(这里称为第四模块度)Q4。同样,取决于超节点的相邻超节点的数量,这里可能得到一个或多个第四模块度Q4。

接下来,设备100可以确定该至少一个第四模块度Q4与第三模块度Q3之间的至少一个模块度差值ΔQ'=Q4-Q3,确定该至少一个模块度差值ΔQ'中的最大模块度差值max{ΔQ'},并且更新该超节点以包含与该最大模块度差值max{ΔQ'}对应的相邻超节点。

设备100可以利用基于模块度的社区发现算法遍历所有超节点以产生多个更新簇,每个更新簇包含至少一个超节点。在一些情况下,这样得到的更新簇可以作为步骤340的最终结果,并且可以根据每个栅格属于哪个更新簇来确定该栅格所属的簇标签。当然,在另一些情况下,还可以对这样产生的更新簇重复上述过程,直至得到的簇的大小满足所需条件。

通过上述步骤340,可以将地理区域200中的所有栅格聚类到相应的簇中,聚类结果例如可以如下表5所示。

继续图3,在步骤350,设备100(例如组团确定单元110)可以对属于同一簇标签的栅格进行融合以确定与该簇标签相对应的组团数据。具体地,设备100可以将如表5所示的聚类结果中,与同一簇标签对应的所有栅格进行融合以确定该簇标签对应的组团数据。该组团数据可以包括簇标签和该簇标签对应的所有栅格的信息(如地理信息、栅格ID等)。

进一步地,方法300还可以将步骤350产生的组团数据进行可视化处理。具体地,设备100可以将与同一簇标签对应的所有栅格的地理信息进行组合以产生与该簇标签对应的地理栅格面文件。例如,表5所示的聚类结果可以转换为如下的表6。

如表6所示,地理栅格面文件POLYGON(C12)表示由簇标签为C12的所有栅格的地理信息(如表1所示的POLYGON(100-100))产生的地理栅格面文件。

然后,可以基于与每个簇标签对应的地理栅格面文件和该簇标签对应的栅格的数量在电子地图(例如如图2所示的地理区域200的电子地图)上显示各个簇标签对应的组团。图9示出了包含根据本发明产生的各个组团的地理区域200的电子地图的示意图。

图10示出了适合实现本公开的实施例的计算设备1000的结构方框图。计算设备1000例如可以是如上所述的设备100。

如图10中所示,计算设备1000可以包括一个或多个中央处理单元(CPU)1010(图中仅示意性地示出了一个),其可以根据存储在只读存储器(ROM)1020中的计算机程序指令或者从存储单元1080加载到随机访问存储器(RAM)1030中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1030中,还可存储计算设备1000操作所需的各种程序和数据。CPU1010、ROM 1020以及RAM 1030通过总线1040彼此相连。输入/输出(I/O)接口1050也连接至总线1040。

计算设备1000中的多个部件连接至I/O接口1050,包括:输入单元1060,例如键盘、鼠标等;输出单元1070,例如各种类型的显示器、扬声器等;存储单元1080,例如磁盘、光盘等;以及通信单元1090,例如网卡、调制解调器、无线通信收发机等。通信单元1090允许计算设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的方法300例如可由计算设备1000的CPU 1010执行。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包括于机器可读介质,例如存储单元1080。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1020和/或通信单元1090而被载入和/或安装到计算设备1000上。当计算机程序被加载到RAM 1030并由CPU1010执行时,可以执行上文描述的方法300的一个或多个操作。此外,通信单元1090可以支持有线或无线通信功能。

本领域技术人员可以理解,图10所示的计算设备1000仅是示意性的。在一些实施例中,设备100可以包含比计算设备1000更多或更少的部件。

利用本发明的方案,通过采集特定地理区域内的栅格级定位数据来搭建栅格联系网络,并且应用社区发现算法更加准确地识别了该特定地理区域内的各个组团结构。

以上结合附图对根据本发明的用于确定地理区域的组团数据的方法300以及可用作设备100的计算设备1000进行了描述。然而本领域技术人员可以理解,方法300的步骤的执行并不局限于图中所示和以上所述的顺序,而是可以以任何其他合理的顺序来执行。此外,计算设备1000也不必须包括图10中所示的所有组件,其可以仅仅包括执行本发明中所述的功能所必须的其中一些组件,并且这些组件的连接方式也不局限于图中所示的形式。

本发明可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。

在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。

本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。

本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。

本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。

相关技术
  • 确定地理区域的组团数据的方法、计算设备和存储介质
  • 确定地理区域的组团数据的方法、计算设备和存储介质
技术分类

06120113083907