题目来源:https://www.kaggle.com/c/bike-sharing-demand
背景介绍
在覆盖整个城市的共享单车系统网络中,用户可以自助租借、归还自行车。这个系统产生的大量诸如租车时间、起始地点、结束地点等数据将系统构建成一张神经网络,能够用来学习城市的交通出行行为。
这个题目要求使用包括天气情况在内的历史数据预测华盛顿的共享单车系统的租借需求。
需要解决的问题
参考题目中的数据,分析不同因素与共享单车租借需求之间的关联度,建立有关共享单车租借需求的模型,预测华盛顿在某些天中的租借量。分析影响共享单车需求的主要因素。
评价标准
提交结果用均方根误差(Root Mean Squared Logarithmic Error,RMSLE)评价模型好坏。RMSLE数学原型:
其中:
n是测试集样本点数
pi是测试值
ai是实际值
log(x)是自然对数
当均方根误差越小时,表示数据的拟合效果越好,测试值越接近实际值。
数据描述
datetime - hourly date + timestamp yyyy - mm - dd hh : mm : ss
season - 1 = spring, 2 = summer, 3 = fall, 4 = winter
holiday - whether the day is considered a holiday
workingday - whether the day is neither a weekend nor holiday
weather - 1: Clear, Few clouds, Partly cloudy, Partly cloudy
2: Mist + Cloudy, Mist + Broken clouds, Mist + Few clouds, Mist
3: Light Snow, Light Rain + Thunderstorm + Scattered clouds, Light Rain + Scattered clouds
4: Heavy Rain + Ice Pallets + Thunderstorm + Mist, Snow + Fog
temp - temperature in Celsius
atemp - "feels like" temperature in Celsius
humidity - relative humidity
windspeed - wind speed
casual - number of non-registered user rentals initiated
registered - number of registered user rentals initiated
count - number of total rentals
训练集共10886个样本(每月1-19日),测试集共6493个样本(每月20日到最后一天)。
可视化
数据主要集中在200左右,同时离群点值很大。
10-15点离群点最多,7-8点和17-18点数量比较大,符合上下班高峰情况。
晴天数量一般最多,小雨天气离群点最多。
星期一到星期五的离群点值明显比周末两天大,在这五天内可能遇到高需求量情况。
热力图:看数据表里多个特征两两的相似度。
seaborn.heatmap(data,vmin=None,vmax=None,cmap=None,center=None,robust=False,annot=None,fmt=’.2g’, annot_kws=None,linewidths=0,linecolor=’white’,cbar=True,cbar_kws=None,cbar_ax=None,square=False, xticklabels=’auto’, yticklabels=’auto’, mask=None, ax=None,**kwargs)
工作日:高峰期在8点和17-18点
周 末 :高峰期在11-17点
一、二、三月使用量最少,当天气比较恶劣时,居民会选择更加舒适的出行方式,例如公交车,地铁等。
1-3月使用量最少;每个月大约有2/3使用量比较大,与工作日周末5:7基本吻合。
全年:高峰期在8点和16-19点
春:使用量明显减少
算法模型
模型1——线性回归拟合
回归的目的是预测数值型的目标值,相当于自变量和因变量的关系,最直接的预测方法就是数学公式。如果自变量和因变量满足线性关系,那么他们的关系可以用线性方程
y=wx+b
表示w和b就是回归系数。在知道x和y 的前提下,目标是找到使误差(预测值和实际值之间的距离)最小的w。推广到多维:
模型缺点:在自变量和因变量之间没有明显线性关系时,线性回归会出现欠拟合。
模型2——局部加权线性回归
目标公式对比:
模型3——随机森林(RF)
随机森林 = Bagging + 决策树
传统决策树:选择最优属性作为划分属性
RF:随机选择n个样本用于训练一个决策树,每次分裂随机选择m个属性,从这m个属性中按照某种依据选择一个作为该结点的 分裂属性
模型评价
线性回归拟合
局部加权线性回归
随机森林
总结
1. 选择合适的模型能增加预测准确度。在尝试线性回归、局部加权线性回归、随机森林后,随机森林的预测效果明显比其他两个好。
2. 合适的特征值转换。在原始数据中,日期特征被分割成了年、月、日、小时和星期五个子特征,增加了信息量。