一种基于司机经验的寻客区域推荐方法转让专利

申请号 : CN202010856267.6

文献号 : CN112052405B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐建

申请人 : 杭州电子科技大学

摘要 :

本发明公开了一种基于司机经验的寻客区域推荐方法。本发明具体实现步骤如下:步骤1、车辆轨迹数据预处理;步骤2、对载客位置点的数据进行聚类得到寻客区域分布图,并为处在不同地点的寻客区域建立区域网络的层次索引结构。步骤3、统计司机的寻客区域访问频率:利用司机个人历史寻客轨迹数据集与寻客区域分布图统计出司机的寻客频率矩阵M。步骤4、计算寻客区域的寻客价值。步骤5、推荐寻客区域:为某个司机推荐当前所处位置内的Top‑k个最具寻客价值的寻客区域位置信息。本发明充分利用寻客区域价值与司机经验间的相关性,挖掘出寻客区域的寻客价值得分。

权利要求 :

1.一种基于司机经验的寻客区域推荐方法,其特征在于包括如下步骤:步骤1、车辆轨迹数据预处理;

步骤2、对载客位置点的数据进行聚类得到寻客区域分布图,并为处在不同地点的寻客区域建立区域网络的层次索引结构;

步骤3、统计司机的寻客区域访问频率:利用司机个人历史寻客轨迹数据集与寻客区域分布图统计出司机的寻客频率矩阵M;

步骤4、计算寻客区域的寻客价值;

步骤5、推荐寻客区域:为某个司机推荐当前所处位置内的Top‑k个最具寻客价值的寻客区域位置信息;

所述的步骤1车辆轨迹数据预处理:车辆轨迹数据是由一系列四元组l的序列Tr:l0→l1→l2→…→li,四元组l包括经度、纬度、时间戳、载客状态;在剔除轨迹数据中的冗余采样点后,获取隐藏在轨迹数据中实际发生载客事件的位置点;

1‑1利用Douglas‑Peucker算法过滤掉车辆轨迹数据中冗余采样点数据记录:对由一系列点组成的车辆轨迹数据中的冗余采样点进行处理,具体将一段轨迹的首末点连接成一条直线,求这段轨迹所有点与这条直线的垂直距离,并找出最大垂直距离值dmax,用dmax与预定义的限差D相比:若dmax

对划分后的两部分重复使用步骤1‑1的处理方式,直至过滤所有冗余采样点数据;

1‑2检测隐藏在轨迹数据中实际发生载客事件的位置点:所述的位置点的判断如下:根据相邻几个四元组li‑lj(i<j)组成的轨迹片段,如果它们的经度、维度、时间戳值相等,并且载客状态发生了变化,那么这就是一个可能的载客停留位置点;

1‑2‑1根据出租车轨迹数据集中载客行为的状态切换和状态切换时车辆的轨迹变化,提取出所有可能存在载客行为的位置点称为载客点;

1‑2‑2如果停留的位置点所对应的轨迹片段内不存在从空车状态到载客状态的转换,则认为该位置点不是一个载客点,将其忽略;而如果一个停留位置点存在从空车状态到载客状态的转换,那么就是一个发生载客事件的位置点,认为该位置点是一个载客点;

所述的步骤3中具体实现步骤如下:

3‑1根据司机的用户ID分别提取出司机的个人历史寻客轨迹数据集U;

3‑2结合寻客区域分布图,并根据司机个人历史寻客轨迹中所覆盖的各个载客点,依次统计出司机对各个寻客区域的访问次数;

假设司机总数为m,寻客区域总数为n,最后得到包含所有司机对各个寻客区域访问情况的一个司机寻客频率矩阵M,其中矢量ui=[vi1,vi2,vi3,…,vin]包含司机i对n个寻客区域的访问情况;当司机i在过去一个月内对某个寻客区域j访问次数超过3次,vij取值为1,否则取值为0;对寻客区域设置一段时间内的最小访问次数是为了过滤某个司机对这个寻客区域的偶然访问;

所述的步骤4中所述寻客区域的寻客价值计算包括如下步骤:

4‑1使用H(h1,h2,h3,…,hm)表示司机寻客经验得分集合,使用A(a1,a2,a3,…,an)表示寻客区域的寻客价值得分集合;司机寻客经验值指一个司机对寻客区域的了解程度;寻客区域的寻客价值指此处获得客人的机率;

4‑2司机寻客经验与寻客区域价值的计算:

4‑2‑1初始化H和A中所有分量为1;

4‑2‑2迭代计算H和A;

设置司机i的寻客经验 然后进行规范化处理设置 然后进行规范化处理

不断地迭代计算,直至同一个司机两次相邻计算结果hi差值小于设定的阈值ε时,则算法收敛终止;对aj的处理相同,迭代计算直至相邻两次计算结果aj差值小于设定的阈值ε,则算法收敛终止;

4‑3最后输出寻客区域的寻客价值得分集合A与各司机寻客经验值得分集合H。

2.根据权利要求1所述的一种基于司机经验的寻客区域推荐方法,其特征在于所述的步骤2具体实现步骤如下:

2‑1载客点聚类:

步骤1得到的载客点集合P包含了所有的载客点(p1,p2,p3…pn),载客点的聚类采用密度聚类方法,输出载客点的聚类结果簇的集合C,集合C包含了载客点集合P中的所有载客点簇ci,所述的载客点簇就是一个寻客区域;聚类中包含两个参数:扫描半径和最小包含载客点数;

2‑2寻客区域网络索引构建:

结合实际的城市道路网络结构,使用参数化的R树对所有寻客区域建立索引;

参数化的R树中每个非叶子节点都由一个最小包含矩形框MBR、本节点MBR所覆盖范围内包含的寻客区域数量及指向子节点的指针组成;非叶子节点的MBR覆盖所包含其子孙节点的MBR;叶子节点主要包含寻客区域的位置信息。

3.根据权利要求2所述的一种基于司机经验的寻客区域推荐方法,其特征在于步骤2‑1具体实现如下:

2‑1‑1检测载客点集合P中尚未处理的载客点pi,如果载客点pi未被处理,则检查该载客点pi扫描半径内的区域,若包含的载客点数大于等于minPts,建立新簇ci,将扫描半径区域中所有载客点加入候选载客点集N;若载客点数对象数小于minPts,则该点被标记作为噪声点;

2‑1‑2对候选载客点集N中所有尚未被处理的载客点q,检查其扫描半径内的区域,若至少包含minPts个载客点,则将这些载客点加入候选载客点集N;如果载客点q未归入任何一个簇,则将载客点q加入簇ci;

2‑1‑3重复步骤2‑1‑2,继续检查候选载客点集N中未处理的载客点对象,直至候选载客点集N为空;

2‑1‑4重复步骤2‑1‑1至2‑1‑3,直到所有载客点都归入了某个簇或标记为噪声。

4.根据权利要求3所述的一种基于司机经验的寻客区域推荐方法,其特征在于所述的步骤5中所述寻客区域推荐包括如下步骤:根据司机所在位置L,通过搜索参数化的R树索引,获取 指定半径范围内寻客价值排名前k个寻客区域,并根据当前位置与这k个寻客区域的排序距离排序,按其排序将寻客区域位置信息推荐给司机;

寻客区域与当前位置距离是指寻客区域与当前位置的路网距离,计算方法使用Dijkstra最短路径算法。

说明书 :

一种基于司机经验的寻客区域推荐方法

技术领域

[0001] 本发明属于出租车智慧寻客领域,具体涉及一种基于司机经验的寻客区域推荐方法。

背景技术

[0002] 近年来,随着位置定位技术的飞速发展,GPS设备已经被出租车广泛使用,因而产生了大量的出租车轨迹数据信息。这些信息在很多领域已经有着成熟的应用,例如城市计
算和路径规划。
[0003] 而在大规模的出租车历史轨迹中,隐藏着大量的出租车乘客搜索策略信息,这些出租车司机的群体智慧亟待发掘利用。如何通过挖掘高效的乘客搜寻策略来提高司机的收
益是一个非常有意义的问题。然而,如果简单地利用数据统计技术对原始数据进行分析,一
方面不能解决冷启动问题(初始状态时数据量太少无法获得有效信息),另一方面难以利用
隐含在数据背后的如司机经验等影响因素。
[0004] 本发明的创新点在于给司机推荐其当前所在地域内的最佳寻客地点时,在计算某个寻客地点所具寻客价值过程中考虑了司机的经验因素,并设计了合适的索引技术来加速
这个推荐过程。

发明内容

[0005] 本发明的目的在于克服目前已有技术的不足,充分挖掘司机群体的寻客经验与寻客区域寻客价值间的相关性,在此基础上提出了一种基于司机经验的寻客区域推荐方法。
具体内容如下:
[0006] 步骤1、车辆轨迹数据预处理:
[0007] 车辆轨迹数据是由一系列四元组l的序列Tr:l0→l1→l2→…→li,四元组l包括经度、纬度、时间戳、载客状态;在剔除轨迹数据中的冗余采样点后,获取隐藏在轨迹数据中实
际发生载客事件的位置点。
[0008] 步骤2、聚类:
[0009] 对载客位置点的数据进行聚类得到寻客区域分布图,并为处在不同地点的寻客区域建立区域网络的层次索引结构,层次索引结构可以加快载客区域的查找、推荐过程。
[0010] 步骤3、统计司机的寻客区域访问频率:利用司机个人历史寻客轨迹数据集与寻客区域分布图统计出司机的寻客频率矩阵M。
[0011] 步骤4、计算寻客区域的寻客价值。
[0012] 步骤5、推荐寻客区域:为某个司机推荐当前所处位置内的Top‑k个最具寻客价值的寻客区域位置信息。
[0013] 具体的,步骤1中,所述车辆轨迹数据预处理包括如下步骤:
[0014] 1‑1为了解决由于道路拥挤、设备故障等原因造成的数据记录冗余问题,利用Douglas‑Peucker算法过滤掉车辆轨迹数据中冗余采样点数据记录:
[0015] 对由一系列点组成的车辆轨迹数据中的冗余采样点进行处理,具体将一段轨迹的首末点连接成一条直线,求这段轨迹所有点与这条直线的垂直距离,并找出最大垂直距离
值dmax,用dmax与预定义的限差D相比:若dmax≥D,保留最大垂直距离值dmax对应的坐标点,并以该坐标点为界,把轨迹分为两部分。
[0016] 对划分后的两部分重复使用上述处理方法,直至过滤所有冗余采样点数据。
[0017] 1‑2检测隐藏在轨迹数据中实际发生载客事件的位置点:
[0018] 所述的位置点的判断如下:根据相邻几个四元组li‑lj(i<j)组成的轨迹片段,如果它们的经度、维度、时间戳值相等,并且载客状态发生了变化,那么这就是一个可能的载
客停留位置点;
[0019] 1‑2‑1根据出租车轨迹数据集中载客行为的状态切换和状态切换时车辆的轨迹变化,提取出所有可能存在载客行为的位置点称为载客点;
[0020] 1‑2‑2如果停留的位置点所对应的轨迹片段内不存在从空车状态到载客状态的转换,则认为该位置点不是一个载客点,将其忽略。而如果一个停留位置点存在从空车状态到
载客状态的转换,那么就是一个发生载客事件的位置点,或载客点。
[0021] 进一步的,在步骤2中,所述聚类过程包括如下步骤:
[0022] 2‑1载客点聚类:
[0023] 步骤1得到的载客点集合P包含了所有的载客点(p1,p2,p3…pn),载客点的聚类采用密度聚类方法,其中包含两个参数:扫描半径(eps)和最小包含载客点数(minPts),本发
明中扫描半径取50米,最小载客点数为5。
[0024] 2‑1‑1检测载客点集合P中尚未处理的载客点pi,如果载客点pi未被处理(没有被归入某个簇或者标记为噪声,噪声点意为附近点的数量小于minPts),则检查该载客点pi扫
描半径内的区域,若包含的载客点数大于等于minPts,建立新簇ci,将扫描半径区域中所有
载客点加入候选载客点集N;若载客点数对象数小于minPts,则该点被标记作为噪声点。
[0025] 2‑1‑2对候选载客点集N中所有尚未被处理的载客点q,检查其扫描半径内的区域,若至少包含minPts个载客点,则将这些载客点加入候选载客点集N;如果载客点q未归入任
何一个簇,则将载客点q加入簇ci;
[0026] 2‑1‑3重复步骤2‑1‑2,继续检查候选载客点集N中未处理的载客点对象,直至候选载客点集N为空;
[0027] 2‑1‑4重复步骤2‑1‑1至2‑1‑3,直到所有载客点都归入了某个簇或标记为噪声。
[0028] 以上步骤输出载客点的聚类结果簇的集合C,集合C包含了载客点集合P中的所有簇ci,在本说明书中,载客点簇就是一个寻客区域。
[0029] 2‑2寻客区域网络索引构建:
[0030] 结合实际的城市道路网络结构,使用参数化的R树(PR‑tree,Parameterized R‑tree)对所有寻客区域建立索引。参数化的R树能够有效地对寻客点位置进行索引,并且降
低寻客区域查找的复杂性。
[0031] 在参数化的R树中每个非叶子节点都由一个最小包含矩形框MBR(MBR,minimum bounding rectangles)、本节点MBR所覆盖范围内包含的寻客区域数量及指向子节点的指
针组成。非叶子节点的MBR覆盖所包含其子孙节点的MBR。叶子节点主要包含寻客区域的位
置信息。
[0032] 进一步的是,步骤3中,所述司机的寻客区域访问频率统计过程包含如下步骤:
[0033] 3‑1根据司机的用户ID分别提取出司机的个人历史寻客轨迹数据集U;
[0034] 3‑2结合寻客区域分布图,并根据司机个人历史寻客轨迹中所覆盖的各个载客点,依次统计出司机对各个寻客区域的访问次数;
[0035] 假设司机总数为m,寻客区域总数为n,最后得到包含所有司机对各个寻客区域访问情况的一个司机寻客频率矩阵M,其中矢量ui=[vi1,vi1,vi1,…,vin]包含司机i对n个寻客
区域的访问情况。当司机i在过去一个月内对某个寻客区域j访问次数超过3次以上,vij取值
为1,否则取值为0。对寻客区域设置一段时间内的最小访问次数是为了过滤某个司机对这
个寻客区域的偶然访问。
[0036]
[0037] 进一步的是,步骤4中所述寻客区域的寻客价值计算包括如下步骤:
[0038] 4‑1使用H(h1,h2,h3,…,hm)表示司机寻客经验得分集合。司机寻客经验值指一个司机对寻客区域的了解程度,例如一个寻客区域是经常被不同司机访问的,说明这个寻客
区域很有价值。反之,如果一个司机经常访问这种大家都认为有价值的寻客区域,那么这个
司机是非常有经验的。
[0039] 使用A(a1,a2,a3,…,an)表示寻客区域的寻客价值得分集合。寻客区域的寻客价值指此处获得客人的机率。如果一个寻客点经常被经验丰富的司机访问,那么说明这个寻客
区域获得客人的机率高,并且它具有较高的商业价值。
[0040] 4‑2司机寻客经验与寻客区域价值的计算:
[0041] 4‑2‑1初始化H和A中所有分量为1;
[0042] 4‑2‑2迭代计算H和A;
[0043] 设置司机i的寻客经验 然后进行规范化处理
[0044] 设置 然后进行规范化处理
[0045] 不断地迭代计算,直至同一个司机两次相邻计算结果hi差值小于设定的阈值ε时,则算法收敛终止。对aj的处理相同,迭代计算直至相邻两次计算结果aj差值小于设定的阈值
ε,则算法收敛终止。
[0046] 由于司机的寻客经验与寻客区域自身的商业价值相关,访问越多的高价值的寻客区域,说明该司机的经验更丰富;寻客区域的商业价值与访问该区域的司机经验也直接相
关,能够吸引越多有经验司机访问的寻客区域,其商业价值越高。本步骤即通过迭代计算,
挖掘出这种司机和寻客区域之间的相关性。
[0047] 4‑3最后输出寻客区域的寻客价值得分集合A与各司机寻客经验值得分集合H。
[0048] 进一步的是,步骤5中,所述寻客区域推荐包括如下步骤:
[0049] 根据司机所在位置L,通过搜索PR‑tree索引,获指定半径范围内寻客价值排名前k个寻客区域,并根据当前位置与这k个寻客区域的排序距离排序,按其排序将寻客区域位置
信息推荐给司机。
[0050] 寻客区域与当前位置距离是指寻客区域与当前位置的路网距离,计算方法使用Dijkstra最短路径算法。
[0051] 本发明的有益效果:
[0052] 本发明通过上述基于司机经验的寻客区域推荐方法,充分利用寻客区域价值与司机经验间的相关性,挖掘出寻客区域的寻客价值得分,并利用事先对各个寻客区域建立的
索引,将处于一个查询用户当前位置一定范围内排名靠前的寻客区域,按照其与司机当前
位置的实际距离排序将其推荐给这个查询用户,从而引导他前往最有可能获得客人的区
域。

附图说明

[0053] 图1是本发明的流程图。
[0054] 图2是本发明步骤2中所述的PR‑tree索引结构示意图。
[0055] 图3是本发明步骤4中所述的分析寻客区域的寻客价值受司机寻客经验影响的迭代计算示意图。

具体实施方式

[0056] 下面结合附图对本发明作进一步说明。
[0057] 如图1所示为本发明一个实施例的基于司机经验的寻客区域推荐方法流程图。流程图给出了一种基于司机经验的寻客区域推荐方法所包含的4个步骤:轨迹数据预处理,载
客点聚类,司机的寻客区域访问频率统计,寻客区域的寻客价值计算,某个司机Top‑k个寻
客区域推荐。
[0058] 图2是PR‑tree索引结构示意图。
[0059] 图2中(c1,c2,…c10)10个载客区域按照空间位置的相似性,递归的分为四组,N3,N4,N5,N6,N3和N4又归结为N1,N5和N6又归结为N2,N1和N2构成根节点。PR‑tree查询算法其
基本过程如下:
[0060] 结点(叶子结点和非叶子结点)的数据项要包含载客区域的标识和包围其子树根结点的最小矩形。把包含载客区域的矩形称为数据矩形;把非叶子结点索引项对应的索引
空间称为目录矩形。两种矩形都允许重叠,
[0061] 查找:查找一个载客区域是否存在于索引范围。
[0062] 对于查找,PR‑tree需要在其结构中查找所有包含司机当前位置所处MBR重叠的索引数据。从根节点开始,递归搜索MBR与载客区域重叠的节点项;直至返回满足一定距离范
围内限制、寻客价值排名前k个寻客点。
[0063] 图3是寻客区域的寻客价值与司机寻客经验的迭代计算示意图。
[0064] 图3左边为计算某一个司机的寻客经验,将其访问过的所有寻客区域的价值相加,然后进行规范化处理,使其取值位于[0,1)区间;
[0065] 在对所有司机的寻客经验进行计算后,计算某一个寻客区域的寻客价值;
[0066] 图3右边所示为寻客区域价值的计算,是将访问过该寻客区域的所有司机的经验值相加,然后进行规范化处理,使其取值位于[0,1)区间。
[0067] 以上过程迭代计算直至司机经验、寻客区域价值收敛(两轮计算结果差值小于一定阈值)。