为优化出租车空间资源调度,针对路网密集、数据密度差异较小条件下的城市出租车载客区域聚类问题,本文提出了一种采用OPTICS算法的聚类模型。通过实验与传统DBSCAN算法下的聚类结果进行对比,发现OPTICS算法更能有效地避免参数设置对实验结果的影响,解决传统DBSCAN算法在此类应用中聚类划分模糊的问题,达到出租车资源调度精细化的效果,对提升出租车载客率、降低空载时间具有现实指导作用。<br/>To optimize the taxi space resource dispatch, a clustering model using OPTICS algorithm is pro-posed for the clustering of taxi passenger carrying area under the condition of intensive road and small difference in data density. By comparing with the results of the traditional DBSCAN algorithm in experiment, it is found that the OPTICS algorithm can effectively eliminate the interference of parameter setting on the experimental results. It helps to the problem of traditional algorithm DBSCAN applied to such situation, and enhances the efficiency of taxi dispatch. This research has practical guiding effect on improving the load factor of taxi and reducing the time of idle load.
王弘扬
对外经济贸易大学信息学院,北京
收稿日期:2019年12月21日;录用日期:2020年1月1日;发布日期:2020年1月8日
为优化出租车空间资源调度,针对路网密集、数据密度差异较小条件下的城市出租车载客区域聚类问题,本文提出了一种采用OPTICS算法的聚类模型。通过实验与传统DBSCAN算法下的聚类结果进行对比,发现OPTICS算法更能有效地避免参数设置对实验结果的影响,解决传统DBSCAN算法在此类应用中聚类划分模糊的问题,达到出租车资源调度精细化的效果,对提升出租车载客率、降低空载时间具有现实指导作用。
关键词 :出租车,载客区域,OPTICS
Copyright © 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
出租车市场供求不平衡问题是导致出租车司机收入、满意度下降的直接原因,间接导致司机调度距离过长,乘客超时等待取消订单等问题,直接制约出租车市场的发展,而出租车市场的供需不平衡问题往往具有短期、局部区域性等特点,如何更好地实现资源调度、满足出行需求是学术界和业界一直在探索的问题。
在互联网环境下,依托数据挖掘和大数据技术的发展,此类问题有着天然的应用场景和解决优势。郑林江等人 [
互联网条件下,出租车市场大量的运营数据有力地驱动本问题的解决。出租车需求在时间、空间上具有一定的相似性,而随着时间的推移,出租车需求在空间上不断地转移,形成一定潮汐效应的同时又有着实时差异。
为了探究城市出租车需求在时间上的精细变化,减少司机等待、空车时间,提升资源调度效率,本文将基于DBSCAN算法和OPTICS算法对出租车载客热点区域进行聚类划分并对比两种方法的聚类结果差异,证明OPTICS算法在应对簇间轮廓模糊的数据集时能更有效地划分簇结果,为具有不同路网类型的城市出租车载客热点预测提供新的参考。
实验数据采自纽约市2009年~2015年间的100万条出租车运营数据,每一条数据包含一次出租车行程单的7个属性,包括乘客上车时间、上下车经纬度、乘客人数、费用等信息。
首先删除包含缺失值或明显异常值的数据;由于纽约城临海,行程起终点GPS定位信息落于海中的数据量要大于内陆城市,本文选择将起终点地点落于水域的数据删除,得到978,643条数据。
经过初步的数据清洗,噪音数据有效减少,即便仍存在的小部分起终点距离过大的数据难以区别是否真实有效,因其数据量不足一百条,不足以对实验产生明确影响。对时间数据进行变量分类转换,区分月份、星期几、第几小时等离散化变量。
新增行程起终点距离属性列,起终点距离为:
distance = 2 R ⋅ arcsin haversin (dR)
其中:
haversin ( d R ) = haversin ( φ 2 − φ 1 ) + cos ( φ 1 ) ⋅ cos ( φ 2 ) ⋅ haversin (Δλ)
haversin ( θ ) = sin 2 (θ2)
DBSCAN算法 [
概念:
假设具有样本集 D = { x 1 , x 2 , x 3 , ⋯ , x n } 。
ε 邻域:对于任一点 x i ∈ D ,
P min :定义使得核心点成立的 ε 邻域内最低点数。
核心点:如果一个给定点 x i 在其 ε 邻域内至少有 个样本点,那么就称该给定点 x i 为核心点。
密度直达:对于核心点 x i ,如果存在样本点 x i 满足 x i 和 x j 间的距离不大于 ε ,那么称 x i 密度直达 x j 。
密度可达:对于一系列样本点 x t , x t + 1 , x t + 2 , ⋯ , x t + k ,如果存在如下关系: x t + m − 1 密度直达 x t + m ,那么
密度相连:在给定 ε 及 P min 条件下,存在样本点 x i , x j 同时可由另一样本点 x k 密度可达,则称样本点 x i , x j 密度相连。
DBSCAN算法核心思想可以解释为:对于样本集合中任意一个样本点 x i ,根据 ε 及 P min 条件判断该样本点是否为核心点,若点 x i 是核心点,则依照密度直达的方式寻找其 ε 邻域内所有样本点集合
N ε ( x i ) = { x j | x j ∈ D ∧ x j ≠ x i ∧ distance ( x i , x j ) < ε } ,再判断 N ε ( x i ) 内所有点是否为核心点,重复该步骤
寻找所有由 x i 出发密度相连的点构成一个簇,直至样本集D中所有的点都落入某个簇集合或非簇集合。
DBSCAN作为一种基于空间密度地聚类算法,发现一个密度区域后以密度可达的方式拓展簇的范围,其聚簇轮廓往往是极不规则的,DBSCAN在面对非凸集数据的时候体现了出色的聚类能力及抗噪能力。
OPTICS算法 [
概念:
在DBSCAN相关概念的基础上,OPTICS算法引入了两个新的定义。
核心距离:样本 x ∈ D ,对于给定 ε 和 P min ,如果 U ( x , ε ) 内存在至少 P min 个样本点,那么 U ( x , ε ) 内
与 距离相近的第 P min 个点与x之间的距离就是x的核心距离。 N ε , P min ( x ) 为样本x在其 ε 邻域内距离x第
P min 近的点,其数学表达式如下:
CoreDistance ( x ) = { undefined , NumOf ( N ε ( x ) ) < P min distance ( N ε , P min ( x ) , x ) , else
可达距离:样本 x , y ∈ D ,对于给定 ε 和 P min , x , y 之间的可达距离为:
ReachableDistance ( x ) = { undefined , NumOf ( N ε ( x ) ) < P min max ( CoreDistance ( x ) , Distance ( x , y ) ) , else
直接密度可达:对于样本 x , y ∈ D ,若x为核心点, Distance ( x , y ) < ε ,则称x到y直接密度可达。
计算过程:
1) 输入数据样本集合 ,设置参数 ε 和 P min 。
2) 初始化序列A和B。
3) 判断集合 中是否存在未处理样本点,是则转入步骤4,否则算法结束。
4) 选择一个 中未处理的核心点,将该核心点放入A序列,并将该核心点的直接密度可达点按可达距离升序排序放入B序列。
5) 判断B序列是否为空,是则转入步骤3,否则转入步骤6。
6) 选择B序列第一个点,将该点放入A序列,若该点为未处理核心点则将该点直接密度可达点放入B序列,并将B序列重新排序,否则转入步骤5。
7) 重复步骤3。
8) 算法结束。
DBI指数戴维森堡丁指数 [
S i = ( 1 T i ∑ j = 1 T i | X j − A i | p ) 1 p
式中 T i 代表第i个簇中的数据点个数, X j 代表簇i中的第j个数据点, A i 为簇i的簇核心,p值用于调整距离计算方法;变量 S i 衡量的是簇内样本点与簇核心的距离均值。
其次,DBI指数定义了变量 M i , j :
M i , j = ( ∑ k = 1 n | a k , i − a k , j | p ) 1 p
a k , i 表示第i个簇的簇核心的第k个属性值,也就是说, M i , j 衡量的是第i个簇和第j个簇的簇核心间距。
随后,DBI指数定义了变量 R i , j :
R i , j = s i + s j M i , j
R i , j 用于衡量第i个簇和第j个簇之间的相似度。
R i 则为第i个簇与其他簇的相似度的最大值:
R i = max ( R i , j )
最终得到DBI指数:
DBI = 1 n ∑ i = 1 N R i
可见,DBI指数非常良好地解释了聚类结果的离散程度,当同一簇内样本点离散程度较低而样本集合内各个簇核心间距较大时,DBI指数较小,聚类结果簇集划分效果较明显。
实验环境:Windows10 x86操作系统,Python为3.6版本,scikit-learn为0.21.3版本。
对本数据集打车起终点距离进行统计,统计结果如图1所示。
图1. 打车起终点距离频数分布
数据表明,本数据集打车起终点距离均值为3.32千米,标准差为3.73千米,50%的行程起终点距离在1.25千米至3.92千米之间,图1横轴位于10千米和20千米处各有一个较为明显的突起,通过后续聚类结果发现原因为该城市航空公共交通基础设施客流聚集。可以看出,打车需求以中短程需求为主。
考虑到随时间推移城市交通设施结构的变化对数据的影响,本文选择2013、2014年周一至周五9:00~10:00期间产生的行程数据作为模型输入。
使用DBSCAN对其空间位置进行聚类,通过网格搜索的方式确定一个较为合理的聚类结果,选择在 ε 邻域取值100米, P min 取值14条件下,其空间聚类结果如图2所示,灰色点为非簇样本,粉色点为所有样本数低于100的簇样本。
图2. DBSCAN算法空间聚类结果
使用OPTICS对同一数据进行聚类,同样使用网格搜索的方式寻找局部较优参数,设置 P min 为5,max_eps为0.05千米,空间聚类结果如图3所示,灰色点为非簇样本,共有9个样本数大于100的彩色簇集。
图3. DBSCAN算法空间聚类结果
两种方法得出的主要簇样本统计结果如表1~2所示。
簇编号 | 样本量 | 簇核心 | 起终点簇核心偏移量 | 起终点距离均值 | 起终点距离标准差 |
---|---|---|---|---|---|
0 | 1494 | (40.749796, −73.978731) | (−0.000434, −0.002933) | 2.25 | 2.33 |
1 | 1364 | (40.754429, −73.988863) | (−0.004354, 0.006218) | 2.39 | 2.7 |
2 | 861 | (40.771835, −73.959432) | (−0.008411, −0.012519) | 2.28 | 1.8 |
3 | 380 | (40.741781, −73.993604) | (0.006179, 0.007705) | 2.04 | 1.6 |
4 | 260 | (40.735644, −74.005358) | (0.008528, 0.017461) | 2.58 | 2.66 |
5 | 231 | (40.762835, −73.969031) | (−0.001989, −0.00257) | 1.94 | 1.69 |
6 | 221 | (40.769991, −73.982147) | (−0.008155, 0.004579) | 2.02 | 1.46 |
7 | 162 | (40.732825, −73.988756) | (0.008949, 0.000837) | 2.01 | 1.05 |
8 | 136 | (40.736977, −73.992913) | (0.003781, 0.003019) | 2.2 | 1.92 |
表1. DBSCAN聚类结果主要簇的样本点统计
簇编号 | 样本量 | 簇核心 | 起终点簇核心偏移量 | 起终点距离均值 | 起终点距离标准差 |
---|---|---|---|---|---|
0 | 106 | (40.781022, −73.956669) | (−0.014664, −0.01384) | 2.46 | 1.57 |
1 | 1341 | (40.769841, −73.960288) | (−0.008099, −0.011928) | 2.31 | 1.93 |
2 | 134 | (40.744907, −73.995032) | (−0.001333, 0.002858) | 1.95 | 1.52 |
3 | 1148 | (40.748236, −73.981069) | (−0.000374, −0.002332) | 2.02 | 1.96 |
4 | 109 | (40.750132, −73.991533) | (−0.003372, 0.006874) | 2.22 | 2.23 |
5 | 106 | (40.756173, −73.990491) | (−0.000316, 0.009939) | 1.85 | 1.22 |
6 | 109 | (40.755899, −73.97371) | (−0.000823, −0.002366) | 2.69 | 2.94 |
7 | 168 | (40.748347, −73.988695) | (0.003076, 0.005769) | 1.89 | 1.81 |
8 | 100 | (40.744145, −73.991906) | (0.00548, 0.003931) | 1.92 | 0.97 |
表2. OPTICS聚类结果主要簇的样本点统计
算法 | DBI | 主要簇样本量 |
---|---|---|
DBSCAN | 60.05 | 5109 |
OPTICS | 3.27 | 3321 |
表3. DBSCAN和OPTICS算法下聚类结果对比
根据实验结果的统计数据可知,OPTICS算法下的实验结果具有更低的DBI指数,这表明各簇内样本点的离散程度低而簇间核心间距较大,具有明显的聚簇划分效果。本方法相较于常用的DBSCAN方法更利于出租车载客区域空间密度的划分,便于运营人员明确核心区域中心,将空载率高的区域车辆向高载客频率区域调度,减少出租车空载时间和乘客等待时间。
由于纽约市出租车载客区域更为密集,且簇间轮廓较为模糊,特定城市的载客热点聚类应当因地制宜采用不同的方法,本文在前人研究的基础上,分别采用DBSCAN和OPTICS两种算法对纽约市出租车载客区域进行了聚类划分,多次调参取得实验结果差异如表3所示,DBI差异明显,可见OPTICS算法在面对簇间轮廓模糊的数据集时可以很大程度上避免 ε 邻域及 P min 值设置所带来的实验干扰,聚类效果强于DBSCAN。
本研究有助于解决不同城市路网条件下出租车的资源调度问题,对大数据精细化运营有重要的现实意义。
王弘扬. 基于出租车运营数据的载客区域聚类及热点特征分析Clustering Of Passenger Picked-Up Areas and Analysis of Hot Spots Based on Taxi Business Data[J]. 数据挖掘, 2020, 10(01): 39-46. https://doi.org/10.12677/HJDM.2020.101004