博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
滴滴算法大赛算法解决过程 - 方案设计
阅读量:6818 次
发布时间:2019-06-26

本文共 1898 字,大约阅读时间需要 6 分钟。

回到原点

上面两篇文章讲了一些分析情况,整个模型变得很不确定了

数据分析:

拟合算法:

滴滴算法大赛到底需要什么样子的答案?

我一开始的想法是建立一个模型,通过天气,POI,交通拥堵的参数来推导出订单数和GAP数。
但是通过现有的数据发现,这个模型很难建立。

其实看一下题目,这是一个预测题:

给定每个区域在时间片tj,tj-1...的各项数据,预测gapi,j+1, ∀di∈D。

如果不是想研究机器学习的话,其实也没有必要(或者没有可能)建立一个完整的模型。

我们只需要知道,数据的发展趋势,例如这个时间点是 N ,按照经验,后一个时间点的趋势是上升还是下降,幅度大约多少即可。

那些因素左右订单

前几天一直在寻找那些因素制约着订单数。

9点整和18点整 全区域订单分析图

订单的总量在不同日期,表现出极大的不同。但是,接单量和司机数有关系,司机数则是比较稳定的,9点的司机数大约是5000人,18点为4500人。(前三个数据是 01-01 到 01-03 节假日 ,01-09 ,01-10,01-16,01-17 分别是节假日,所以早晨的需求比较少 )
通过分析,我们应该可以整理出一张司机数和时间段的对应函数。(节假日和非节假日区分开来)

9点整和18点整 全区域订单分析图

如果我们按照节假日和非节假日去看分时接单量

  • 节假日的早高峰和平日的早高峰项目,相差巨大。
  • 节假日和非节假日,其他时段接单量,基本持平。
  • 每天的8:30分,17:30分 是两个最高值。

Thumbnail?filename=00000001_20160525140201_didi0020.PNG

  • 根据这个统计数据,我们大概知道了每天的接单情况。可以预测未来的某个时间片的接单量。当然,如果我们能够计算出Gap比率(GAP数/总订单数[GAP+接单数]),Gap数也是可以预测出来的。很遗憾,Gap比率的数据统计如下:(每天订单量起伏比较大,接单数较为固定,GAP比率则变化很大)
    日期别9:00和18:00GAP比率

Thumbnail?filename=00000001_20160525141234_didi0021.PNG

预测订单趋势

上面说了,日期别的订单差异量很大,但是我们是否可以考察一下,每个时段的订单变化率是否有规律可循呢?

例如在 100个时间片上订单时 N,则101个时间片上,根据统计一般会增加 1.5%的话,则可以预测101个时间片上的订单时 1.05 * N;
当然如果就这么计算的话,可能会接近于正确答案,但是完全没有使用POI,天气,交通等数据,基本上是不可能获奖的。。。
不过,我们可以先来试试看,是不是可以找到规律呢。从图表上看,我们应该可以统计出,每个时间点上数据的变化率。

周三的变化:

Thumbnail?filename=00000001_20160525143211_didi0022.PNG

从第一个周三到第二个周三的变化

Thumbnail?filename=00000001_20160525145239_didi0023.PNG

从第一个周三到第二个周三的变化率

订单变化率:(这个时间片 - 上个时间片)/ 上个时间片

Thumbnail?filename=00000001_20160525150341_didi0025.PNG

这样的话,我们大概可以对于各个时间片之间订单的变化率做一个统计平均表。

假设时间片 N 的订单数位 Order ,下一个时间片N+1的订单数为 NextOrder,则 变化率 K = (NextOrder - Order) / Order。
我们可以计算出全区域的每个时间片的变化率,也可以算出单个区域的每个时间片的变化率。

每个区域的订单比例

有些区域订单多,有些区域订单少,这个比例是否会随着时间变化而变化呢?

放心,基本上每个区域的订单比率很固定的。

Thumbnail?filename=00000001_20160525160815_didi0026.PNG

如何解决问题

题目里面告诉了我们所需测试Gap的时间片的前三个时间片的数据。结合变化率的概念,其实我们可以计算出待预测的时间片的订单量。

还有一个问题是接单量怎么考虑,我的想法是将这三个已知时间片的接单量的平均值作为新的接单量。
(有一种情况,例如一个时间片里 有50个订单,但是有1个GAP,这个时候其实不能认为接单量只有49,而应该认为这个区域的基本上是公供需平衡的。1个GAP有可能是偶然因素。所以我这里认为5个GAP以下都是供需正常的。)

  • 第N+1个时间片的GAP = 第N + 1个时间片的订单数 - 第N + 1个时间片的接单能力。
  • 第N + 1个时间片的订单数 = 第N 个时间片的订单数 * (订单变化率+ 1)
  • 第N + 1个时间片的接单能力 = 第 N ,N-1, N-2 个时间片的接单能力的平均值。

最后公式是:

  • 第N+1个时间片的GAP = 第N 个时间片的订单数 * (订单变化率+ 1) - 第 N ,N-1, N-2 个时间片的接单能力的平均值

这种方法计算出来的结果可能接近于答案,也可能远离答案。但是完全没有体现出机器学习的作用,所以本人觉得肯定是有问题的。这里只是给出一种解决方案。接下来,开始思考正统的解决方案。

转载于:https://www.cnblogs.com/TextEditor/p/5527124.html

你可能感兴趣的文章
make: *** No targets specified and no makefile found. Stop.错误
查看>>
闭包的常见用处
查看>>
中联通4月份3G用户净增181.7万总数突破2000万
查看>>
cJSON填坑记
查看>>
css3(border-radius)边框圆角详解(转)
查看>>
hdu1406
查看>>
Android 开发工具下载中文网站
查看>>
Redis 列表处理
查看>>
The vim syntax of systemd unit file
查看>>
关于Linux库文件的制作--普通的静态库、动态库
查看>>
yum install tomcat
查看>>
android 股票数据通过日K获取周K的数据 算法 源码
查看>>
关于Linux运维的一些题目总结
查看>>
原生js实现查询天气的小应用
查看>>
分享两个必应壁纸接口,可用来获取高质量壁纸和故事
查看>>
tomcat启动脚本
查看>>
ASP.NET-FineUI开发实践-10
查看>>
小猪决定做一件尝试
查看>>
linux下jdk的安装:
查看>>
Ajax_ajax模板引擎 ---tmplate.js处理数据和标签拼接
查看>>