最近一直在想怎么分析一下个人的行程数据,看看能够从行程数据里面分析出点什么来。最开始我的期望还是蛮高的,有如下的一些预期:
根据出行时间范围,可以基本确定他的生活节奏,工作强度
能够通过行程时间范围来猜测汽车尾号
根据出行的耗时历史来建议出行时间
如果能够分析得到这些信息,感觉还是蛮有意思的,于是开始自己动手,第一个问题就是数据源,导航软件目前还不提供行程数据的导出,所以我是把7-8两个月的行程数据逐个照着导航行程整理出来了,大体的数据情况还可以,不过其中有些数据做了额外处理,比如时间的处理,因为是如果是7:15,那么按照数字化显示就不能是7.15,而更合理的显示是7.4,还有行程时间,比如1:30,是需要统一按照分钟90分钟来整合的,整理后得到的数据如下:
首先我按照时间做了对行程的耗时做了分析,结果发现这个数据似乎不大理想,本来预期是比较稳定的,还打算按照这个数据做下预测。
这种情况下就得换一个思路了,先看看数据的整体分布,使用条形图其实是不好体现数据的分布情况,因为有些行程之间是没有直接关联的,比如早上和晚上的行程,因为时间的差异,条形图的模式反而会有很大的抖动。
如下是按照行程的耗时分布图:
如下是行程出发时间的分布情况,基本上来说都是在6:30~7:00之间开始出发,晚上基本在20:00左右返程。
如下是按照周一到周日的行程耗时分布,可以明显看到周二的行程分布要少很多,还不如周六,周日的多,所以从这一点是可以猜出来很可能是因为限号。
当然前面提到了两个指标,一个是行程耗时,一个是出发时间,还有一个是路程,因为路程和耗时两者是有一定关联,但是折算下来一个折中的指标就是平均速度。所以按照平均速度的分布情况来看,周一和周五是最堵的,相对周四和周六是最通畅的。
我们区别于一般的可视化,引入箱线图,可以看到平均行程的耗时在45分钟左右,区间基本在30-60分钟之间。
其实数据分析到了这里,还是有很大差异的,虽然或多或少的分析出来了一些内容,但是有些指标还是没有充分使用到,而且显示的指标情况还是不够清晰,所以打算使用seaborn进一步做下调整。
如下是行程距离,行程耗时和星期数的综合分布图。
如下是星期和行程耗时的分布图,相比之前的分布图来说会更加清晰一些。
我们继续引入平均速度,出发时间和星期数进行关联,可以看到整个行程会有明显的分水岭,早间和晚间基本堵是工作日,而其他的时间基本都是周末。
而要进一步探索这些数据指标间的关联,就需要引入略复杂的图PairGrid,可以把多个指标都放入,可以生成多个维度的分布图。
接下来需要对数据的指标情况进一步分析,引入检验和预测的功能。