《大数据分析与挖掘》实训教案-神经网络算法在共享单车需求预测场景中的应用_第1页
《大数据分析与挖掘》实训教案-神经网络算法在共享单车需求预测场景中的应用_第2页
《大数据分析与挖掘》实训教案-神经网络算法在共享单车需求预测场景中的应用_第3页
《大数据分析与挖掘》实训教案-神经网络算法在共享单车需求预测场景中的应用_第4页
《大数据分析与挖掘》实训教案-神经网络算法在共享单车需求预测场景中的应用_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

神经网络算法在共享单车需求预测场景中的应用一、操作环境1.操作系统:windowAll2.软件平台:LogisPMT,python3.4二、业务场景共享单车系统是近期兴起的一种共享交通系统,一般在居住区、商业中心、交通枢纽等人流集聚区域以及旅游景点附近设置密集站点,配备一定数量的共享单车,向用户提供通过手机APP等方式,共享自行车使用权的服务,同时利用物联网技术、通讯技术、计算机软件平台以及大数据分析等进行运营、调度、监控、管理,具有高效、智能的特点。共享单车在城市交通中优势明显,对现有的城市公交系统构成有力的补充完善。共享单车以外的其他城市公交系统,考虑到成本效益比,都有站间距较大的特点(500m以上),超过了舒适和快捷步行的距离;且地铁和公交车的站点较大,建设要求高,难以深入到小街巷和居民区内部。而共享单车密度较高,间距较近,能够补充地铁和公交车的缺陷,其是市民实现从住宅到其他公交站点的“最后一公里”交通、以及不同交通工具间接换乘的的理想交通方式。共享单车系统是规模效应产品,其使用量受多重因素影响,主要包括:区域行人密度、区域单车密集度、租用押金、租金、工作日、假期、温度、天气、风速等。目标:通过深入挖掘历史共享单车区域需求数据,从多个维度刻画需求变动规律,构建精准的区域共享单车需求预测模型,为平台管理者制定更加科学化的管理方案提供重大战略支撑。三、数据历史共享单车区域需求数据。数据体量为10000条,每条记录表征某一城市某一区域在特定时间段上的共享单车需求量,特征的详细信息如下表所示。特征类型示意id数值型记录编号,无实际意义y数值型一个小时内共享单车需求量city分类型该记录发送的城市hour数值型当前的时间,精确到小时Is_workday分类型1表示工作日,0表示周末或节假日temp_1数值型当时的气温,单位为摄氏度temp_2数值型当时的体感温度,单位为摄氏度weather数值型当时的天气状况,数值越大,天气状况越糟糕wind数值型当时的风速,数值越大,风速越大四、操作步骤新建一个工程,如图1所示。图1新建工程1.数据载入 通过Data区域中的Logis云端数据组件载入共享单车_train数据,如图2所示。图2载入云端数据 在对话框中的特征区域,用户可以通过双击属性名称,属性数据类型来实现自定义编辑。用户也可以进一步的观测到分类型属性的属性值,当然,用户也能通过编辑域组件来实现属性值的自定义编辑修改,如图3所示。图3属性值编辑2.探索性数据分析为了可视化观测共享单车需求的分布情况,在Visualize区域中引入分布图组件,并与域编辑组件相连,双击打开,不妨先观测不同城市之间共享单车需求的分布情况,在分组配置区域中选择city,在变量设置区域中选择y,如图4所示。图4不同城市间共享单车需求分布 从上图可以发现,每小时共享单车需求量在小于62.25区间内,城市2需求量略高,在超过62.25的区间段上,城市1的需求量明显更为旺盛。 我们再进一步观察工作日与非工作日共享单车的需求分布情况,在分组配置区域中选择is_workday,如图5所示。图5工作日与非工作日共享单车需求分布 从上图可以发现,工作日共享单车的需求量相较非工作日差异极为显著在不同需求段上,工作日的需求量远远高于非工作日的需求量,这也验证了在一些主要城市,共享单车已经成为了上班族主要的出行方式。当然,也可以通过马赛克图来观测多个维度下,共享单车需求的分布状况。在Visualize区域中引入马赛克组件,并与域编辑组件相连,双击打开,详细配置如图6所示。图6两个维度交互下观测共享单车需求分布状况 将鼠标放置对应区块位置,可以观测到城市1在不同需求区段上(从低到高)的占比为:23.3%,17%,28.6%,31%;可以观测到城市1在不同需求区段上(从低到高)的占比为:26.3%,28%,28.3%,17.4%。从中可以估测,同为工作日的维度下,每小时共享单车需求量分布下,城市1整体上较城市2更为旺盛。再次切入第三个维度气温,来观测当时所处时间点在的气温状况对共享单车需求量的影响,详细配置如图7所示。图7三个维度交互下观测共享单车需求分布状况 在马赛克图的不同区块中,可以非常清晰的观测到,随着气温的上升,两城市的共享单车的需求量都呈现逐级上升的趋势,尤其是城市1在工作日下,共享单车的需求量随气温的变化极为显著。3.共享单车需求聚类分析为了进一步分析多个维度下共享单车的需求分布状况,从而帮助平台管理者更有针对性的实现单车的区域性数量调拨,最大化满足客户的需求,提高利润,最小化共享单车由于调拨不科学所造成的闲置浪费。本案例构思采用k-means算法来实现共享单车需求快速聚类。由于k-means算法不支持非数值型变量的输入,此外进一步考虑所选变量对聚类模型的合理性,采用共享单车需求量y、气温temp_1、体感温度temp_2、风速wind作为聚类模型的输入,选择城市1作为研究的对象(读者可自行观测城市2的聚类模型),从Data区域中选择记录选择组件,双击打开,在条件栏中选择city字段,并筛选城市1作为对象,如图8所示。图8记录选择为了过滤无用字段,从Data区域中选择特征选择组件,并与记录选择组件相连,双击打开,详细配置如图9所示。图9特征过滤考虑到时间的维度,以及早高峰、晚高峰对共享单车需求量的影响,因此暂且将聚类的簇数设置为4,从Unsupervised区域中选择K-means聚类组件,配置完参数后与特征选择组件相连,如图10所示。图10聚类建模待聚类建模完毕,采用箱线图来直观的观测聚类模型中各个类别在不同维度上的分布状况。从Visualize区域中选择boxplot组件,并与K-means聚类组件相连。双击打开在Subgroups配置区域中选择Cluster,在Variable变量区域中选择需求量y,如图11所示。图11聚类模型在共享单车需求量维度上的分布情况从聚类模型的箱线图中可以观察到,各个簇在共享单车需求量维度上区分度极好,能有效将不同簇区分开来。其中从需求均值来看,各个簇从高到低分别为:C3(176.6272)、C2(109.6840)、C1(57.4061)、C4(11.7768),需求极差达到249。进一步来观测各个簇在气温维度上的分布状况,如图12所示。图12聚类模型在气温维度上的分布情况对比气温均值,各个簇从高到低分别为C3(21.7451)、C2(19.8336)、C1(17.1557)、C4(11.7035),进一步验证了气温的高低与共享单车的需求量呈现正相关的关系。接下来探测不同簇之间天气状况的分布情况,如图13所示。图13聚类模型在天气维度上的分布情况对比天气均值,各个簇从高到低分别为:C4(1.5222)、C1(1.3911)、C2(1.3172)、C3(1.2076)。天气数值越大表征天气状况越为糟糕,较好的验证了共享单车的需求量与天气维度呈现负相关的关系。 我们再用分布图的形式探索不同簇之间在时间段上的分布情况,如图14所示。图14不同簇之间在时间段上的分布情况从上图可以发现,C3簇在8-9点、16-18点两个时段上出现了极为明显的峰值,反映出了需求量旺盛的C3簇主要集中于早高峰以及晚高峰期间,而需求量最为低迷的C4簇主要集中在晚上10点至凌晨6点。4.共享单车需求预测模型构建由于本数据集中包含数值型以及分类型特征,BP神经网络算法通常在非线性的场景中具有良好的拟合性以及泛化能力,因此构思采用BP神经网络算法构建共享单车需求预测模型。首先定义好目标变量以及特征变量,从Data区域中引入特征选择组件,并与记录选择组件相连,如图15所示。图15特征选择本案例中采用70%的原始数据集作为训练集,剩余30%的原始数据作为验证集。对原始数据进行随机采样,从Data区域中引如数据采样组件,双击打开,采用方法选择第一项-固定采样比例为70%,配置完参数后与上一个特征选择组件相连,如图16所示。图16数据采样为了评估训练模型的性能,从Evaluate区域中选择模型评估组件,将数据采样组件中的数据流引至模型评估组件,点击工作流选择信号,将采样的70%作为训练数据集,剩余的30%作为验证数据集,如图17所示。图17信号选择从Model区域中选择神经网络组件,双击打开,进入配置项。这里简单的介绍一下配置参数中涉及到的几个概念。神经元的激活和连接人脑中基本的计算单元叫做神经元(neuron)。人的神经系统中大约包含860亿个这样的神经元,并且他们之间通过大约10^14~10^15数量级的突触(synapses)进行连接。下图18显示了一个神经元和它抽象出的数学模型。每个神经元会从它们的树突(dendrites)获得输入信号,然后再将输出信号传给它的轴突(axon)。轴突再通过突触和其他神经元的树突相连。图18人脑神经元与抽象出来的数学模型在神经元的数学模型中,轴突所携带的信号(例如:x0)通过突触进行传递,由于突触的强弱不一,假设以w0表示,那么传到下一个神经元的树突处的信号就变成了w0x0。其中突触强弱(参数w)是可训练的,它控制了一个神经元对另一个神经元影响的大小和方向(正负)。然后树突接收到信号后传递到神经元内部(cellbody),与其他树突传递过来的信号一起进行加和,如果这个和的值大于某一个固定的阈值的话,神经元就会被激活,然后传递冲激信号给树突。在数学模型中假设传递冲激信号的时间长短并不重要,只有神经元被激活的频率用于传递信息。我们将是否激活神经元的函数称为激活函数(activationfunctionf),它代表了轴突接收到冲激信号的频率。几种常见的激活函数:Sigmoid函数。Sigmoid非线性激活函数的形式是σ(x)=1/(1+e−x),其图形如下图左所示。sigmoid函数输入一个实值的数,然后将其压缩到0~1的范围内。大的负数被映射成0,大的正数被映射成1。sigmoid函数在历史上流行过一段时间因为它能够很好的表达“激活”的意思,未激活就是0,完全饱和的激活则是1。而如今sigmoid函数已经不在常用范畴之内了,主要是因为存在两个缺点:1.Sigmoid容易饱和,当输入非常大或者非常小的时候,神经元的梯度就接近于0,从图中可以看出梯度的趋势。这就使得我们在反向传播算法中反向传播接近于0的梯度,导致最终权重基本没什么更新,就无法递归地学习到输入数据。2.Sigmoid的输出不是0均值的,这是我们不希望的,因为这会导致后层的神经元的输入是非0均值的信号,这会对梯度产生十分重大的影响。图19Sigmoid函数与Tanh函数Tanh函数。Tanh是sigmoid的变形:tanh(x)=2σ(2x)−1。Tanh和Sigmoid存在异曲同工之妙,它的图形如上图右所示,不同的是它把实值得输入压缩到-1~1的范围,因此它基本是零均值的,也就解决了上述Sigmoid函数缺点中的第二个,所以实际中tanh函数会比sigmoid函数更常用,但它还是存在梯度饱和的问题。ReLU函数.近年来,ReLU越来越受欢迎,它的数学表达式是:f(x)=max(0,x)。其图形如下图20左所示。图20ReLU函数从上图左可以看出,输入信号<0时,输出为0,输入信号>0时,输出等于输入。ReLU的优缺点如下:优点1:收敛速度相较sigmoid/tanh快很多;优点2:计算成本低缺点:ReLU在训练的时候很”脆弱”,一不小心有可能导致神经元”坏死”。例如:由于ReLU在x<0时梯度为0,这样就导致负的梯度在这个ReLU被置零,而且这个神经元有可能再也不会被任何数据激活。为了对比各个激活函数在该场景中训练模型性能上的差异,引入多个神经网络组件,配置不同的激活函数,Solver同意设置为收敛性较好的L-BFGS-B,其他参数采用默认配置,并与模型评估组件相连,待模型训练完毕,双击打开,训练模型性能参数如图21所示。图21训练模型性能参数统一采用评价方法为:RMSE—均方根误差亦称标准误差。若真实值为y=(y1,y2,⋯,yn),模型的预测值为y^=(y^1,y^2,⋯,y^n),那么该模型的RMSE的计算公式为:MSE为均方误差,MAE为平均绝对误差,R2为模型拟合度。从上图可以看出,激活函数为tanh下的BP神经网络模型,RMSE值最小为14.125,训练模型拟合度最佳,其次是激活函数Logistic下的BP神经网络模型,RMSE值为17.943,略逊前者,激活函数Identity下的BP神经网络模型性能最差,拟合度最糟糕。打开模型评估组件,切换至检验测试数据选项,待模型执行完毕,如图22所示。图22模型在测试集下性能参数从上图可以看出,模型在测试集下性能参数可以进一步反映BP神经网络模型的泛化能力,精度最高的模型还是激活函数为tanh下的BP神经网络模型,其RMSE在测试集下达到17.882,较训练集下的14.125,略有上升,但幅度不大,拟合度R2为0.886,较训练模型下的拟合度R2为0.930下降了0.044,下降幅度很小,再次验证了该模型的强泛化性能。用户可以进一步将训练好的预测模型保存至本地,将特征选择组件中的数据流引入激活函数为tanh的神经网络组件,从Model区域中选择模型保存组件,并与该神经网络组件相连,用户可自定义保存的路径与模型名称,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论