Osheep

时光不回头,当下最重要。

摩拜单车分析

https://www.biendata.com/competition/mobike/

写此文之时,摩拜单车算法大赛正在进行中。摩拜在北京的单车投放量已经超过40万,为了更好地调配和管理这40万辆单车,需要准确地预测每个用户的骑行目的地。参赛者需要根据摩拜提供的数据,预测骑行的目的地所在区块。

举办方提供的文件集中包括了两个文件,分别是训练集(train.csv)和测试集(test.csv)。其中,train包括了321万条出行记录;test包括200万条出行记录,但是隐去了骑行目的地的数据,需要选手对其进行预测。

*******下面是对数据的一点想法,想到哪里写到哪里*****
对比有些竞赛60个或者80个特征,摩拜比赛特征特别的少,只有订单号,用户id,自行车型号,日期和时间,开始骑行的时间,起点和终点,没了。然后订单号ms还没有什么用。
自行车型号分为1和2,好像也没有什么用。
而且没有还车时间,不能用duration来预测与起始点的距离。
所以也就是对着用户、时间和地点来来去去的构建特征了。

先看日期,官方给了5月里两个星期的数据,而且隔开了17号,错开了。

《摩拜单车分析》

对于时间,做出直方图来,可以看到6点-8点,16-18点是使用量高峰期

《摩拜单车分析》

另外还可以对weekend和weekday做使用量分析


城市坐标,因为有荒谬的离群点,所以删去。取样避免密集,然后用scatterplot打印。

sub<-sample(1:nrow(train),round(nrow(train)*1/100))
length(sub)
data_train<-train[sub,]#取1/100的数据做训练集

smoothScatter(data_train$start_lng,data_train$start_lat)
《摩拜单车分析》

随便看一下,大概集中在赵公口汽车站附近。
因为数据是脱敏的,所以不一定是真实的地址。


用户方面,train集有300多万个数据,但用unique函数,发现共有349693个用户id,大概平均每个用户使用10次。
采用历史数据可以提供准确率。


类似案例有滴滴的几篇文,用了高斯特征和贝叶斯算法。不过只预计了30%用户,而且是单峰预测。
http://m.sohu.com/a/158543230_355140

文件集中的“地理位置通过Geohash加密,选手可以通过开源的方法获得经纬度数据。”——用geohash包,encode/decode就可以了。

对于python代码中两个包安装的技术问题,参考网址如下:
geohash包:
http://blog.csdn.net/jinlong_xu/article/details/73822759
win下xgb下载地址
http://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost

点赞