一种基于多维度的打车位置推荐系统及其推荐方法

文档序号:6536207阅读:650来源:国知局
一种基于多维度的打车位置推荐系统及其推荐方法
【专利摘要】本发明公开了一种基于多维度的打车位置推荐系统及其推荐方法,该系统包括:出租车历史GPS数据筛选和导入模块、MySQL数据库模块、基于Android平台的打车位置推荐客户端、数据挖掘算法训练数据库表模块、缓存刷新模块、服务器端与客户端衔接模块、后台管理系统。基于多维度的打车位置推荐方法能够有效地把握打车路口的时间维度、空间维度、客户打分参考等维度的空车概率信息,使综合各维度所得的空车概率趋于精确,客户打车的成功率得到较大提高。
【专利说明】一种基于多维度的打车位置推荐系统及其推荐方法

【技术领域】
[0001]本发明涉及数据挖掘领域,特别涉及一种以基于时间、空间和客户打分三个维度为主要基准,维度可增加的多维度的辅以数据挖掘算法训练数据库表的打车位置推荐系统及其推荐方法。

【背景技术】
[0002]生活中,用户可能身处一个陌生的地方,想打出租车却无法在附近找到出租车的踪影;又或者用户所处的地方会出现多人争夺一辆出租车的情况,而另一方面,在离该地方不远处,又出现空出租车无人光顾的情况,上述的情况时常发生。
[0003]传统的打车软件,如《嘀嘀打车》、《易打车》等,是基于实时通信,即通过打电话找出租车,或者留下用户的电话让出租车司机找上门,这类移动软件的缺点是用户可能留下了自己的电话,但是出租车司机却迟迟未找上门,这可能是出租车司机在路途中看到另外想打车的用户,又可能是出租车司机嫌路途太远,不愿前往。此外,如《易打车》等打车软件,在传统功能上新增了预约功能,而一般人打车都是即兴打车,较少预约,因此预约功能并不能为传统打车软件行业开辟一个全新的打车方式和习惯。


【发明内容】

[0004]本发明为了克服传统打车软件的缺点,提出了一种基于多维度的打车位置推荐系统及其推荐方法,本发明采用的是基于数据挖掘的位置推荐技术,使打车用户自身更具自主性,通过此位置推荐技术,供用户定点选择最近最有可能打车成功的位置。
[0005]为了实现上述目的,本发明提供的一种技术方案为一种基于多维度的打车位置推荐系统,包括:
出租车历史GPS数据筛选和导入模块,用于将少量不合理的出租车历史GPS数据记录进行清除,并把合格的数据导入数据库;
打车位置推荐客户端,用于为用户提供良好的交互界面、接收用户的请求以及显示请求的结果,用户通过客户端发出定位请求,用户通过客户端发出定位请求,具体功能如:实时定位,为用户提供实时定位当前位置,向服务器请求推荐位置功能;选点定位,为用户提供地图上任意选取位置,向服务器请求推荐位置功能;搜索定位,为用户提供搜索地名来获取所寻位置坐标,向服务器请求推荐位置功能。当客户端接收到服务器返回的数据,则进行相应功能的显示,具体如下:收藏功能,为用户提供将该位置收藏到后台数据库的功能;评分模块,为用户提供该位置的评分,以动态调整空车率的功能;显示路线模块,为用户提供请求位置到目标位置的最省时的路线功能;
服务器端与客户端衔接模块,用于服务器与客户端的信息传输;
数据挖掘算法训练数据库表模块,用于使空间、时间、打分相应的概率权重趋向于合理、精准的水平;
缓存刷新模块,用于使缓存中的数据与修改后的数据库数据相匹配; 后台管理系统,用于刷新缓存、动态更新打车位置概率、实现计划任务等管理工作; 数据库模块,对数据进行存储。
[0006]进一步地,所述的服务器端与客户端衔接模块包括以下几个子模块:注册和登录业务逻辑处理模块;打车位置推荐业务逻辑处理模块;打车位置打分业务逻辑处理模块;刷新缓存业务逻辑处理模块。
[0007]进一步地,所述推荐系统是基于Android平台的打车位置推荐系统,该推荐系统通过服务器端与手机客户端衔接模块使手机客户端与服务器端发生交互。
[0008]为了实现上述目的,本发明的又一技术方案为提供了一种基于多维度的打车位置推荐系统的打车位置推荐方法,所述方法获取时间维度、空间维度、打分维度上的空车概率,采用最终打车概率算法,得出最终最有可能成功打车的位置,
所述的获取时间维度的方法为打车位置的时间维度概率算法,该方法用于获取数据挖掘训练得出每个时间段的打车概率,获取时间维度的概率;
所述的获取空间维度的方法为打车位置的空间维度概率算法,该方法用于获取相应区域的空车概率,获取空间维度的概率;
所述的获取打分维度的方法为打车位置的打分概率算法,用于获取打分维度的概率,并反馈给用户相应的打分信息来参考某位置是否具有准确性。
[0009]进一步地,所述的打车位置的时间维度概率算法包括以下几个步骤:
用户上传当前经纬度点;
建立以当前经纬度点A为圆心,以R为半径的圆形模型;
调用数据库中的全部出租车GPS记录,判断所有的记录中经纬度字段是否落在该圆形模型范围内,而且需要判断记录中的时间字段是否属于当前时间段,不符合这两个条件的记录予以排除,符合条件的记录将在下一步骤进行相关处理;
从符合条件的出租车GPS记录中获取位置字段信息,分别统计空载车辆数和满载车辆数;
通过得出圆形模型范围车辆的空载车辆数与满载车辆数,计算出A点在时间维度上的空车概率Ptime (A) JPPtime (A)=(空载车辆数)/ (满载车辆数)。
[0010]进一步地,所述打车位置的空间维度概率算法包括以下步骤:
用户上传当前经纬度点;
建立以当前经纬度点A为中心,以L为边长的正方形模型;
调用数据库中的全部出租车历史GPS记录,判断每个存放记录表中的记录的经纬度字段是否落在该正方形模型范围内,不符合条件的记录予以排除,符合条件的记录将在下一步骤进行相关处理;
将第i个表中符合条件的记录按记录中的name车牌号字段分组为&[1...η],其中0〈i〈sum+l, sum表示存放记录表的个数;
依次计算出a[l]至a[n]出租车的空车记录数占表i中总记录数的概率Pi=(Pa[l] +Pa [2] +...+ Pa[n])/n,从而得出sum个表各自的空车概率,其中位置字段为O ;
最后,A点在空间维度上的空车概率:
Pspace(A) = (P0+P1+...+Pi+...+Psum)/sum。
[0011]进一步地,所述打车位置的打分维度概率算法包括以下步骤: 用户使用过位置推荐功能后,在手机客户端对该经纬度点进行打分;
用户在当前经纬度A点所得分值被上传至服务器数据库中存放;
计算打分维度的空车概率时,取出A位置中所有用户的打分值进行叠加,求平均值,得出A位置的平均打分值,并把该值放入数据库表中;
通过所得平均打分值,进而得出A点在打分维度上的概率Pscore(A)。
[0012]更进一步地,所述的最终打车概率算法包括以下步骤:
用户上传当前经纬度点;
调用百度地图检索服务,返回用户当前点附近的路口的经纬度点集合,存储于数组a
中;
对数组a中的每一个元素a[i],元素代表A附近的一个路口,其中O彡i彡max,max-1为数组最后一个元素,执行空间维度的space算法、时间维度的time算法、打分维度的score算法,从而分别获得时间维度的空车概率Ptime (a[i])、空间维度上的空车概率Pspace (a[i])、打分维度上的概率 Pscore (a[i]);
通过上一步骤所得三个维度上的空车概率,则该路口 a[i]的最终空车概率为P(a[i])= Ptime (a[i]) XF(time) +
Pspace (a[i]) XF (space) +
Pscore (a[i]) XF(score)
其中,各维度的权值总和F (space) + F (time) +F (score) =1,并把所得概率存进相对应的数组b中;
对所得概率数组b进行降序排序;
把所得结果概率数组b返回给客户端。
[0013]进一步地,所述数据挖掘算法训练数据库表模块的功能为对时间维度的概率权值F(time)、空间维度的概率权值F (space)、打分维度的概率权值F(score)三者进行数据挖掘训练。
[0014]本发明的有益效果在于:
1、本发明提供了一种基于数据挖掘技术的打车位置推荐系统及其推荐方法,本系统区别于传统的打车软件所依赖的实时通信方式,通过数据挖掘算法实现打车位置推荐,极具创新性。
[0015]2、本发明的应用并非基于打车者与司机双方的联系,而是由打车者根据本发明推荐的位置进行选择,具有主动性,而且基于多维度的数据挖掘位置推荐算法很大程度上保证了打车者打车的成功率。
[0016]3、本发明目前主要是基于时间、空间、打分这三个维度进行算法分析计算空车概率来获得推荐位置,但我们可以在此基础上添加更多的维度,如路况、天气等,提高本发明的准确性和应用价值。

【专利附图】

【附图说明】
[0017]图1为一个基于多维度的打车位置推荐系统及方法架构图。
[0018]图2为后台系统架构图。
[0019]图3为打车空车概率计算方法实现原理图。
[0020]图4为空间维度的空车概率space算法原理图。
[0021]图5为《打车易》系统实现流程图。

【具体实施方式】
[0022]下面结合附图对本发明做进一步的描述,但本发明的实施方式并不限于此。
[0023]如图1所示,一种基于多维度的打车位置推荐系统包括:基于Android平台的打车位置推荐软件客户端、服务器端与客户端衔接模块、注册和登录业务逻辑处理模块、打车位置推荐业务逻辑处理模块、打车位置打分业务逻辑处理模块、刷新缓存业务逻辑处理模块、打车位置的打分概率算法、打车位置的空间维度概率算法、打车位置的时间维度概率算法、动态更新打车位置概率、打车位置的概率算法、数据挖掘算法训练数据库表、缓存刷新、后台管理系统、出租车历史GPS数据筛选和导入模块、数据库模块。其中:
基于Android平台的打车位置推荐软件客户端,通过用户上传的当前的经纬度点,调用百度PlaceAPI返回用户当前点附近的路口的经纟韦度点集合,通过space算法、time算法、score算法计算出降序排列的打车概率大小,反馈到用户的手机客户端上,使用户判断并选择符合用户需求的待车点。
[0024]出租车历史GPS数据筛选和导入模块的操作对象为TXT格式文件保存的原始数据,该模块的工作原理为清除存在不合格的字段的原始数据,把合理的原始数据导入数据库,建立打车概率分析模型。
[0025]服务器端与客户端衔接模块,在服务器端与手机客户端之间建立协议文档,接收从手机客户端发送来的注册、登录、获取打车位置、用户收藏、获取地名对应信息、用户对打车位置评分等功能手机客户端通过http请求请求服务器的数据,服务器经过业务逻辑计算后(期间会调用数据库数据),返回给手机客户端json格式数据,手机客户端解析数据并显示给用户。服务器端与客户端衔接模块包括以下几个子模块:
注册和登录业务逻辑处理模块,用户以邮箱格式注册账号,服务器端在数据库中插入新的用户名记录。若得到登录请求,将传送过来的用户名和密码在数据库中的user表中进行比对,若成功则登录,反之失败;
打车位置推荐业务逻辑处理模块,用户发送推荐打车位置的请求,将会上传当前的经纬度点,调用百度PlaceAPI返回用户当前点附近的路口的经纬度点集合,通过space算法、time算法、score算法计算出降序排列的打车概率大小,并反馈给用户;
打车位置打分业务逻辑处理模块,将接收到的用户评分插入到数据库中;
刷新缓存业务逻辑处理模块,个别业务处理模块在处理业务时可能会调用到MySQL数据库,但是大部分时间,系统都是直接和缓存打交道,不会直接在数据库层面进行操作。
[0026]打车位置的空间维度概率算法,所述打车位置的空间维度概率算法是通过以所在打车位置(设为A点)为中心,边长为2*radius的正方形区域,其中radius为一边量,即正方形区域的大小可自己拟定,把所需范围的出租车记录纳入统计数据当中,将该表i (0〈i〈sum,设共sum个表)中所有的出租车记录按出租车车牌分组为a[l...]!],依次计算出a [I]到a [η]出租车的空车数(status字段为0)占总记录数的概率Pi,对有出租车记录的所有表进行上述过程操作,获取每一个表的空车率,把每个表的空车概率进行累加,取平均值,从而计算出A点在空间维度上的空车概率,即Pspace (A) = (P1+P2+…+Psum)/sum。
[0027]打车位置的时间维度概率算法,所述打车位置的打分维度概率算法是用户在手机客户端对A打车位置打分后,分值会被上传到服务器数据库中存放,通过对A位置不同用户打分值的叠加求平均值,得出A位置的平均打分,然后这个平均打分值可以反馈给用户来参考某已打车位置是否具有准确性。同样,本系统正是通过score算法,获取打分维度上的空车概率Pscore (A)。
[0028]打车位置推荐算法的打分算法,用户在手机客户端对A打车位置打分后,分值会被上传到服务器数据库中存放。通过对A位置不同用户打分值的叠加求平均值,得出A位置的平均打分,然后这个平均打分值可以反馈给用户来参考某已打车位置是否具有准确性。
[0029]动态更新打车位置概率,通过对历史收集的概率值进行分析,并通过数据挖掘算法训练,可以让各个维度的概率权值趋于准确水平,让用户使用到更准确的打车位置推荐。随着用户数的增加,用户的评分会增多,最终概率值的计算会很大程度依赖于打分值score算法计算出来的概率。
[0030]打车位置的概率算法,通过用户上传的当前的经纬度点,调用百度PlaceAPI返回用户当前点附近的路口的经纟韦度点集合,通过space算法、time算法、score算法计算出降序排列的打车概率大小。打车概率为:
P (A) = Pspace(A) X F (space)

+Ptime (A) X F (time)

+ Pscore (A) X F (score)
其中Pspace (A)是A点经过space算法计算后得到的概率,F(space)是space算法的权值。Ptime (A)是A点经过time算法计算后得到的概率,F (time)是time算法的权值。Pscore (A)是A点经过score算法计算后得到的概率,F (score)是score算法的权值。其中,权值和为 F (space) + F (time) +F (score) =1。
[0031]数据挖掘算法训练数据库表,为了使计算结果更加准确,需要动态更新数据,通过数据挖掘的方法,统计分析数据库中若干表专门存放历史space、time、score算法对应概率值。通过对这些历史数据的分析,可以让probfactor表中space、time、score概率权值趋于精准水平,让用户使用到更准确的打车位置推荐。
[0032]数据筛选,本实施例通过对原始数据进行了筛选和预处理后,数据预处理后的数据,分类后根据所得数据字段记录到表格I。如此海量的信息,通过数据库进行储存,建立恰当的关系模式,让服务器进行数据的提取和更新,以反馈至客户端。而通过数据挖掘算法训练数据库表对数据库中数据进行及时更新和维度权值的更新,让本发明为用户提供的空车概率趋于精准。

【权利要求】
1.一种基于多维度的打车位置推荐系统,其特征在于包括: 出租车历史GPS数据筛选和导入模块,用于将少量不合理的出租车历史GPS数据记录进行清除,并把合格的数据导入数据库; 打车位置推荐客户端,用于为用户提供的交互界面、接收用户的请求以及显示请求的结果; 服务器端与客户端衔接模块,用于服务器与客户端的信息传输; 数据挖掘算法训练数据库表模块,用于使空间、时间、打分相应的概率权重趋向于合理、精准的水平; 缓存刷新模块,用于使缓存中的数据与修改后的数据库数据相匹配; 后台管理系统,用于刷新缓存、动态更新打车位置概率、实现计划任务等管理工作; 数据库模块,对数据进行存储。
2.如权利要求1所述的打车位置推荐系统,其特征在于:所述的服务器端与客户端衔接模块包括以下几个子模块:注册和登录业务逻辑处理模块;打车位置推荐业务逻辑处理模块;打车位置打分业务逻辑处理模块;刷新缓存业务逻辑处理模块。
3.如权利要求1所述的打车位置推荐系统,其特征在于:所述推荐系统是基于Android平台的打车位置推荐系统,该推荐系统通过服务器端与手机客户端衔接模块使手机客户端与服务器端发生交互。
4.一种基于多维度的打车位置推荐系统的推荐方法,其特征在于:所述方法获取时间维度、空间维度、打分维度上的空车概率,采用最终打车概率算法,得出最终最有可能成功打车的位置, 所述的获取时间维度的方法为打车位置的时间维度概率算法,该方法用于获取数据挖掘训练得出每个时间段的打车概率,获取时间维度的概率; 所述的获取空间维度的方法为打车位置的空间维度概率算法,该方法用于获取相应区域的空车概率,获取空间维度的概率; 所述的获取打分维度的方法为打车位置的打分概率算法,用于获取打分维度的概率,并反馈给用户相应的打分信息来参考某位置是否具有准确性。
5.如权利要求4所述打车位置推荐方法,其特征在于:所述的打车位置的时间维度概率算法包括以下几个步骤: 用户上传当前经纬度点; 建立以当前经纬度点A为圆心,以R为半径的圆形模型; 调用数据库中的全部出租车GPS记录,判断所有的记录中经纬度字段是否落在该圆形模型范围内,而且需要判断记录中的时间字段是否属于当前时间段,不符合这两个条件的记录予以排除,符合条件的记录将在下一步骤进行相关处理; 从符合条件的出租车GPS记录中获取位置字段信息,分别统计空载车辆数和满载车辆数; 通过得出圆形模型范围车辆的空载车辆数与满载车辆数,计算出A点在时间维度上的空车概率Ptime (A) JPPtime (A)=(空载车辆数)/ (满载车辆数)。
6.如权利要求4所述的打车位置推荐方法,其特征在于:所述打车位置的空间维度概率算法包括以下步骤: 用户上传当前经纬度点; 建立以当前经纬度点A为中心,以L为边长的正方形模型; 调用数据库中的全部出租车历史GPS记录,判断每个存放记录表中的记录的经纬度字段是否落在该正方形模型范围内,不符合条件的记录予以排除,符合条件的记录将在下一步骤进行相关处理; 将第i个表中符合条件的记录按记录中的name车牌号字段分组为&[1...η],其中0〈i〈sum+l, sum表示存放记录表的个数; 依次计算出a[l]至a[n]出租车的空车记录数占表i中总记录数的概率Pi=(Pa[l] +Pa [2] +...+ Pa[n])/n,从而得出sum个表各自的空车概率,其中位置字段为O ; 最后,A点在空间维度上的空车概率:
Pspace(A) = (P0+P1+...+Pi+...+Psum)/sum。
7.根据权利要求4所述的打车位置推荐方法,其特征在于:所述打车位置的打分维度概率算法包括以下步骤: 用户使用过位置推荐功能后,在手机客户端对该经纬度点进行打分; 用户在当前经纬度A点所得分值被上传至服务器数据库中存放; 计算打分维度的空车概率时,取出A位置中所有用户的打分值进行叠加,求平均值,得出A位置的平均打分值,并把该值放入数据库表中; 通过所得平均打分值,进而得出A点在打分维度上的概率Pscore(A)。
8.如权利要求4所述的打车位置推荐方法,其特征在于:所述的最终打车概率算法包括以下步骤: 用户上传当前经纬度点; 调用百度地图检索服务,返回用户当前点附近的路口的经纬度点集合,存储于数组a中; 对数组a中的每一个元素a[i],元素代表A附近的一个路口,其中O彡i ^ max,max-1为数组最后一个元素,执行空间维度的space算法、时间维度的time算法、打分维度的score算法,从而分别获得时间维度的空车概率Ptime (a[i])、空间维度上的空车概率Pspace (a[i])、打分维度上的概率 Pscore (a[i]); 通过上一步骤所得三个维度上的空车概率,则该路口 a[i]的最终空车概率为P(a[i])= Ptime (a[i]) XF(time) +
Pspace (a[i]) XF (space) +
Pscore (a[i]) XF(score) 其中,各维度的权值总和F (space) + F (time) +F (score) =1,并把所得概率存进相对应的数组b中; 对所得概率数组b进行降序排序; 把所得结果概率数组b返回给客户端。
9.根据权利要求1所述的打车位置推荐系统,其特征在于所述数据挖掘算法训练数据库表模块的功能为对时间维度的概率权值F(time)、空间维度的概率权值F (space)、打分维度的概率权值F(Score)三者进行数据挖掘训练。
【文档编号】G06F17/30GK104166663SQ201410024392
【公开日】2014年11月26日 申请日期:2014年1月20日 优先权日:2014年1月20日
【发明者】李志豪, 蔡瑞初, 叶威良 申请人:广东工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1