“算”出停车位 |
发布于:2018/06/27 |
妈妈开车外出时,因难以找到停车位,停车总要花费很多时间。尽管有些手机App能显示当前车库车位的空位数,但往往等我们把车开过去时车库就已经停满了。如果能提前预测车库在几分钟之内有空位,可以直接开过去停车,该有多好啊。 要想预测出几分钟之后的车库空位,我认为必须用一种可根据历史停车信息推断出未来空位信息的智能算法。 经过搜索,我发现有很多智能预测算法,其中BP神经网络可根据历史信息推算出未来的信息。在BP神经网络研究者的探索下,BP神经网络的各方面都趋向成熟,如今已被运用到多个领域,如数据挖掘、模式识别、图像处理、股票预测、市场分析等。 能不能用该算法预测车库的空位数? 一、实施步骤 我选择位于温州市区车流量较大地区一个车容量为210辆的停车场作为研究对象,选取了从2017年10月21日 0:00:00到2017年10月26日 21:15:08的1612条即时车库空位数据按照以下步骤进行研究。 1.读入车库空位数据集。抽取成1612行、6列的数据格式,第1到第5列为输入层数据,第6列为输出层数据。 2.划分数据集。前865条为训练数据集,后747条为测试数据集。 3.输入数据归一化处理。采用最大最小归一化方式:xk=(xk-xmin)/(xmax-xmin)。 4.初始化BP网络训练结构。设置输入层节点数为n=5个,隐含层节点为j=50个,输出层节点k=1个的三层结构。初始化输入层、隐含层和输出层节点之间的连接权值wij,wjk(随机值),并给出隐含层节点和输出层节点的阈值θj和θk(随机值),这里迭代次数为5000次,学习率net.lr=0.01,学习目标精度net.goal=0.0003,节点传递函数=‘logsig’。 5.隐含层输出计算。根据输入层5个时间节点的车库空位Oi以及隐含层的连接权值wij、隐层阈值θj,计算隐含层输出Oj。 Ij=■wijOi+θj Oj=■ 6.输出层输出计算。根据隐含层输出Oj、连接权值wjk和输出层阈值θk,计算输出层输出Ok(预测的车库空位数)。 Ok=■Ojwjk+θk 7.误差计算,根据误差反向传播,并更新权值和阈值。期望输出Yk,输出层误差Errk,隐含层误差Errj。 Errk=Ok(1-Ok)(Yk-Ok) Errj=Oj(1-Oj)■Errkwjk 权值和阈值更新: Vwjk=lr*ErrkOj Vwij=lr*ErrjOi wjk=wjk+Vwjk wij=wij+Vwij V =lr*Errk V =lr*Errj θk=θk+V θj=θj+V 8.判断模型迭代是否结束或是否达到目标精度net.goal=0.0003,若没有则按第5步骤继续计算。 二、实验分析 按照以上步骤,我用matlab分别对该停车场5min后、10min后、15min后的车辆数进行仿真预测,并和真实值进行对比。 由预测值与实际值的对比得出以下结论。 1.用BP神经网络算法基本能预测出未来5min、10min、15min的停车场车辆数,由此可得出空位数。 2.车辆数变化较小的时段,预测误差也较小。 3.将预测数据和实际数据进行对比,计算出未来5min的停车场车辆预测平均误差率为1.76%,未来10min预测平均误差率为2.90%,未来15min预测平均误差率为3.91%。由此可见,预测平均误差率5min后的最小,10min后的次之,15min后的最大,也就是说,预测效果5min后的最佳,10min后的次之,15min后的最差。 4.将预测数据和实际数据进行对比,5min后、10min后、15min后的预测车辆数和实际数的最大差值分别为16辆、27辆、39辆。 5.将预测数据和实际数据进行对比,5min后、10min后、15min后的预测车辆数和实际数相差小于1辆的预测次数比例分别为46.72%、38.15%、34.94%。预测车辆数和实际数相差小于5辆的比例分别是93.19%、81.04%、71.03%,而预测车辆数和实际数相差小于10辆的比例分别是99.07%、95.06%、89.45%,满足率较高。 6.将预测所得的数据按照车辆数100进行划分,少于或等于100辆定义为闲时,大于100辆定义为忙时,分别计算闲时和忙时的预测误差率可得,闲时未来5min、10min、15min的停车场车辆预测平均误差率分别为2.84%、4.43%、5.86%;忙时未来5min、10min、15min的停车场车辆预测平均误差率分别为1.10%、1.97%、2.73%。 三、实验结论 1.BP神经网络算法可用来预测车库未来5min、10min、15min的车辆数。其中预测效果5min后的最佳,10min后的次之,15min后的最差。 2.在預测空位超过10个的情况下,有空位的几率非常高,用户可优先选择附近空位超过10个的车库。 3.此预测方法所得忙时的预测误差率比闲时预测误差率小,而人们更需要的是忙时的预测,所以忙时误差率小对用户更有利。 四、研究思考 1.有些时段的误差偏大,我认为主要原因可能是BP神经网络算法本身学习时间比较长、收敛比较慢,或是我的参数初始值选得不好、我选择的用来学习的数据不具有代表性等等。今后我还会尝试改善算法,进一步缩小误差。 2.我研究的对象是有210个车位的停车场,在我调取数据的时间段内均没有车位停满的情况,那么针对车位很紧张的车库,BP神经网络算法能否准确预测呢? 3.人工神经网络是人们常用的预测方法之一,BP神经网络算法只是其中之一,还有其他很多的算法,比如支持向量机、极限学习机等先进方法,把这些算法运用到车库空位预测中,效果如何?作者:任芷乐 来源:发明与创新·中学生
|
|