基于机器学习方法的共享单车需求分析
2020-08-09李天骋
李天骋
摘要:共享单车是当前一种流行的出行方式,不同地区和不同时段对共享单车的需求不同。更好的共享单车需求分析能够优化共享单车配置,降低闲置率,提高利用率。本文依据Kaggle华盛顿共享单车使用的历史数据,对未来几天的共享单车需求进行预测,要求利用每月前19天的历史数据预测20天之后的共享单车租赁情况。这一问题属于机器学习中的回归问题,在Kaggle提供的数据集上分别采用了线性模型(Ridge Regression),基于回归树的集成学习模型(Random Forest)以及深度学习模型(Neural Network)。以预测结果和真实值的RMSE(Root Mean Squared Logarithmic Error)作为模型表现的评价指标。对不同的模型特点以及在共享单车数据集上的表现进行了对比分析,对结果进行了总结。
关键词:共享单车需求分析;岭回归;随机森林
中图分类号:F27文献标识码:Adoi:10.19311/j.cnki.16723198.2020.25.019
0引言
共享单车是一种十分便捷环保的出行方式,人们可以从任意提供共享单车的位置通过手机APP租借,在到达目的地之后直接在APP上选择归还将共享单车落锁即可。
回归问题的研究在机器学习领域具有重要意义,不同的回归分析方法由于各自的思想以及采用的优化方式不同因而在不同的训练数据上表现会出现差异。基于对数据本身的分析和理解,从机器学习回归方法中挑选几个模型进行训练,并在此基础上进行优化。
本文依据共享单车预测这一具体问题,构建了一些回归学习模型,将历史数据与未来的天气信息相结合,更加准确地预测华盛顿特区的共享单车租赁需求。
1数据集描述
Kaggle比赛给出的数据集划分为训练集和测试集,其中训练集包含10886个训练样本,测试集包含6493个测试样本。数据包含12列特征,包括datetime(日期,精确到整点时刻),season(季节,1=春,2=夏,3=秋,4=冬),holiday(是否假日),workingday(是否工作日),weather(天气等级:1=晴天或多云,2=有雾,3=小雪或小雨,4=暴雨或大雪,冰雹等恶劣天气),temp(温度,摄氏度),atemp(体感温度),humidity(相对湿度),windspeed(风速),casual(非会员租赁数量),registered(會员租赁数量),count(总租赁数量,会员+非会员)。数据中只有日期特征为字符串类型,其他特征都是数值类型,数据中不存在缺失情况。
1.1数据集分析
1.1.1数据预处理
经过数据探查,发现数据中不存在缺失值和重复值,因此对数据进行异常值分析。
1.1.2数据加工
对字符串类型的日期数据进行转换,从中提取出年,月,日,小时,单独作为特征。
1.2特征分析
1.2.1日期和共享单车租赁总数
对于训练数据,分别计算每日对应的共享单车租赁总数和当月共享单车租赁的中位数,画出2011年1月到2012年12月的折线图。可以直观地看到,2012年和2011年的数据,年内波动曲线类似,但2012年每月租赁数据同比2011年均有增长。
1.2.2月度和共享单车租赁总数
通过对月份和共享单车租赁情况画图分析,年内随着月份变化租赁总量会有规律地变化,此外,每个月的数据中存在不同程度的离群点。
1.2.3季度和共享单车租赁总数
数据呈现出比较明显的季度趋势,通过分析发现,租赁总数的峰值出现在秋季,低谷出现在春季,此外,春季具有较多的离群值。
1.2.4周几和共享单车租赁总数
通过对数据取中位数分析,相比工作日,周末会有较多的非会员用户租赁共享单车,工作日则有较多的会员用户使用共享单车。统计共享单车的日内使用总数,工作日共享单车有更多的用户。
1.2.5工作日、节假日和共享单车租赁总数
整体而言,共享单车的租赁在节假日呈下滑趋势,而在工作日呈上升趋势。同时,在节假日会有更多的非会员用户使用共享单车服务,而在工作日,使用共享单车的非会员用户较少。可能节假日的非会员用户来源为游客,较多的会员用户会在工作日使用共享单车来通勤。
1.2.6整点时间共享单车租赁总数
对整点时间的分析划分成节假日和工作日两部分。
在节假日期间,非会员用户与会员用户的共享单车使用趋势比较接近,峰值出现时间不同,非会员用户峰值出现在下午2点左右,会员用户的峰值则出现在下午5点。
在工作日期间,会员用户的共享单车使用呈现出两个峰值,分别为早上8点和下午5点。这两个时段为上下班高峰期,符合会员用户通勤需要的推测。非会员用户则不存在双高峰的情况,在一天之中呈现出先上升后下降的趋势,高峰出现在中午。
1.2.7天气和共享单车租赁总数
在工作日以及非工作日,共享单车的租赁数量会明显受到天气的影响,当天气越糟糕,共享单车的使用量越低。如果非工作日遇到最恶劣的天气(暴雨/大雪)则不会产生共享单车的租赁。
2构建回归模型
2.1构建岭回归(Ridge Regression)模型
2.1.1基本原理
线性回归实际上是假设训练数据X和预测目标Y之间满足线性关系,假设一组线性方程,利用预测值和真实值的误差构建损失函数来描述线性方程的拟合效果,用训练数据对模型进行训练,通过梯度下降算法来减小误差(即降低损失),从而修正线性方程。损失函数是一种评判标准。通过求得损失函数的最小值来确定最能拟合数据的线性方程。梯度下降算法是一种用来计算损失函数最小值的方法。
2.1.2在共享单车预测数据集上应用Ridge Regression模型
对于一组线性方程Y=wx+b构造一个损失函数,预测值和真实值之间的平方误差,使用梯度下降的方法求得损失函数的最小值,能够使组线性方程最好地拟合数据集,求出此时的w,b即确定了线性方程的参数,得到训练好的模型。
岭回归则是在线性回归的基础上增加正则化参数,能够有效地防止模型过拟合。
2.1.3结果分析
训练过程中,通过交叉验证来挑选最优的alpha参数,最终选定的alpha参数为805。采用最优的参数训练模型,分别计算模型在训练集和测试集上的RMSE(均方根误差,预测值与真实值偏差的平方与观测次数n比值的平方根)以及模型的拟合优度R2(R2 <=1,R2越大越好,模型baseline对应的R2接近0,当模型完全拟合时,R2 = 1)。模型在训练集上的RMSE:1.034,模型拟合优度评分:0.466,模型在测试集上的RMSE:1050,模型拟合优度评分:0.4580。
2.2构建随机森林(Random Forest)模型
2.2.1基本原理
以cart回归树作为基础学习器,采用最小均方差来决定划分特征以及特征值。(遍历所有特征以及特征值,选定任意特征值作为划分依据将数据划分成两部分,S1和S2,筛选出能够令S1和S2集合内均方差最小的划分特征以及特征值)。
随机森林,森林的概念是指由多棵树组成。每棵树用Bootstrapping(有放回抽样)的方式构造训练集,在构建每棵树的时候按照设定好的比例随机抽取一些训练特征参与树的构建。最后将每棵树集成在一起作为最终的预测模型。当有一个新的测试样本输入时,让森林中的每一课决策树对它进行判断,输出一个类别(分类算法)或一个平均值(回归算法),避免了一棵树的决策失误。
2.2.2在共享单车预测数据集上应用Random Forest模型
共享单车数据中除了部分数值类型的特征之外,存在较多类别类型的特征,从特征情况来看比较适合使用随机森林来建模。
2.2.3结果分析
在Random Forest模型中采用了1000个估计器,用MSE(均方误差)作为评价指标,每棵树的深度采用默认值。模型在训练集上的准确率达到: 0.94338,在测试集上的准确率达到0.92173。
2.3构建DNN模型
2.3.1基本原理
DNN模型即人工神经网络(Neural Network),以神经元作为基本运算单元。每个神经元按照线性变换和非线性变换相结合的运算逻辑,对输入数据进行运算,将结果顺着网络连接输送给下一层神经元。每个神经元数据变换的线性函数形式为:W* X+b,其中X为输入数据,W为权重参数,b为偏置参数,参数是随机初始化的,需要网络在训练过程中进行修改。非线性函数通常使用ReLu以及leakyReLu等非线性函数,起到了过滤信号的作用。
DNN结构包括输入层,隐藏层和输出层,其中隐藏层可能是一层或多层神经元结构。每层设定好神经元的个数,相邻两层神经元之间是全连接的(每两个神经元之间都有連线),而连接表示上一个神经元的输出要作为下一个神经元的输入。
对于神经网络的调整可以从改变隐藏层数目以及修改每层神经元个数入手,为了避免过拟合情况,还可以在Dense层后面增加Dropout层,不仅能简化模型,还能够增强网络的鲁棒性。理论上来说,在没有过拟合的前提下,增加神经元个数以及层数能够增强模型的预测能力。
2.3.2在共享单车预测数据集上应用DNN模型
构建了一个三层128 个神经元的神经网络,采用‘adam作为优化器。在原始模型的基础上尝试增加或减少hidden layer,在训练过程中为了避免过拟合采用了early stop。加入了 weight dacay。
2.3.3结果分析
在原始模型基础上增加了Dropout,修改了模型学习率。最终模型在训练集上的RMSE:0.4213,模型准确率:0.9526,模型在测试集上的RMSE:0.4437,模型拟合优度评分:0.9506。
3结语
通过对各个模型的特点以及结果对比分析,集成学习和深度学习均表现出比较明显的优势。对比三层DNN以及线性模型岭回归在共享单车需求预测上的效果差异,深度学习相对于其他机器学习方法而言,对特征的自动提取是其最大的特点,在没有充分的人工特征的前提下,深度学习能够发挥出较大的作用。深度学习对比传统方法来说,最大的优势是自动特征的提取。对比集成学习以及线性模型岭回归在共享单车需求预测上的效果差异,集成学习得益于对于单个预测模型的综合。如果对特征进行进一步扩展和筛选,可能在此基础上能够得到更好的模型效果。
参考文献
[1]Kaggle共享单车案例——随机森预测[EB/OL].https://zhuanlan.zhihu.com/p/38168416.
[2]Python数据分析——Kaggle共享单车项目实战[EB/OL].http://www.sohu.com/a/284341148_120045139.
[3]实践Kaggle比赛:房价预测[EB/OL].http://zh.d2l.ai/chapter_deep-learning-basics/kaggle-house-price.html.