博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神经网络算法对车牌价格的预测
阅读量:7022 次
发布时间:2019-06-28

本文共 2561 字,大约阅读时间需要 8 分钟。

  hot3.png

声明:

    本篇博客纯粹是技术的探讨。

一、前言

    北京、上海、深圳、杭州等很多城市都对小客车增量进行调控,获取车牌的其中一个办法是竞价,那么是哪些因素决定着车牌的价格呢?是否有算法可以预测车牌的价格呢?本篇博客尝试着做一些探讨。

二、因子选择

    以下是杭州21个月车牌竞价相关数据

   1520216613287.png

    1、物品价值的本质

    物品的价值的大小,本质上而言是人类在共同认知下所赋予的,对人类生活起着重要影响的物品,人类肯定会在共同的认知下赋予其价值,例如衣食住行相关的各种物品。至于价值的多少,大部分情况下都是由供需关系决定,比方说常听到的“物以稀为贵”、“洛阳纸贵”这些话,都是反映了供需关系决定了价格。

    对于上面车牌竞价数据,反映供需关系的因素我们应该拿出来作为因子,那么很容易看出,【有效编码数】是反映了“需”的因素(【申请编码数】由于不是全部审核通过的因素,所以不能作为因子),【投放指标数】是反映了“供”的因素。

    2、平均报价

    【平均报价】反映的是人们对车牌的一个心理价位,当然也有人是抱着试试看,一直报最低价,假设所有人都报最低价,平均值肯定是最低价。事实上,并非如此,绝大多数人,会按照自己所认可的车牌价格来报价,那么平均报价,本质而言反映的是人们所共同认可的价值。

    那么两次平均报价,肯定应该本选择为因子。

    那么最终选择出来的因子如下:

    【投放指标数】、【有效编码数】、【第一次播报均价】、【第二次播报均价】

三、数据集的选择

    仔细观察数据,16年和17年数据不管是均价、还是最低成交价,都有很大差别,那么反映了人们所共同认知的车牌价值是不同的,所以,选定2017年1月的数据到2018年2月的数据为数据集。

四、模型

    目标:预测出本月车牌的最低成交价

    【投放指标数】、【有效编码数】、【第一次播报均价】、【第二次播报均价】这四个指标影响着车牌价格,具体是怎么样影响的呢?我们设想有个黑盒,把这四个指标扔进去相互作用之后,得到一个结果,这个结果就是最低价。

204458_dyN4_1778239.png

    那么,这些因子对最低价产生的怎样的影响呢?可能是线性的、也可能是非线性的,我们不得而知。中间的盒子,我们可以把他当成一个函数F,反正一堆参数进去,求得了一个值,于是,

【最低价】=F(投放指标数,有效编码数,第一次播报均价,第二次播报均价),那么函数F到底是什么呢?我们不知道,但是我们有历史数据,神经网络可以逼近任意的函数,我们就来逼近一下试试。

    我们整理一下数据集:

    205229_CLFd_1778239.png

    用weka的多层感知机来构建一个神经网络。

211009_n0ZI_1778239.png

   学习率设为0.001,迭代500000次,得到如下结果,已经在数据集上逼近了一个函数。

211429_cdeR_1778239.png 

五、预测

    将训练好的模型保存下来,复制到Java Project,写个测试代码。

@Test	public void testMultilayerPerceptron() throws Exception {		MultilayerPerceptron mp = (MultilayerPerceptron) SerializationHelper				.read(getClass().getResource("/").getPath() + "/weka/model/cp.model");		ArffLoader headLoader = new ArffLoader();		headLoader.setFile(new File("weka/model/cp_head.arff"));		Instances testDataSet = headLoader.getDataSet();		testDataSet.setClassIndex(testDataSet.numAttributes() - 1);		Instance testInstance = new DenseInstance(testDataSet.numAttributes());		testInstance.setDataset(testDataSet);		testInstance.setValue(0, 1187);		testInstance.setValue(1, 2600);		testInstance.setValue(2, 30726);		testInstance.setValue(3, 31023);		System.out.println(mp.classifyInstance(testInstance));   }

    2017年3月26号,杭州车牌竞价,指标投放数1187,两次播报平均价分别为30726、31023,唯一不知道的因子是有效编码数,对于有效编码数我们推测一下,2017年2月为2539,可能由于春节的原因大家注意力不在车牌上面,那么本月,人数应该会增多,我们以2600或者2700来估算一下。

    当有效编码数为2600时,预测最低价为:35251.22

    当有效编码数为2700时,预测最低价为:35986.43

    实际上今天出来的最低成交价为:34300,与预测结果出入不大。同时基于34300这个结果,我们预测一下本月的有效编码数:2460。今天结果还没出来,等结果出来,我们验证一下。

特别说明:cp_head.arff是为了构建测试集而用,实际上是对特征数据类型的定义,定义如下:

@relation cp

a numeric

b numeric
c numeric
d numeric
@attribute r numeric

@data

六、总结

    预测值与实际值相差不大,效果差强人意,数据实际上可以反映人对客观事物价值的评价,人的心里活动,同时也反映了人对一个事物的纠结万分与考虑再三的思考与计算……

    之前在某本书上看过一句话:世间万物皆显偶然之态,但远比想象的容易预测。

 

---------------------------------------------------------------------------------------------------------

快乐源于分享。

   此博客乃作者原创, 转载请注明出处

 

 

转载于:https://my.oschina.net/u/1778239/blog/1785278

你可能感兴趣的文章
分布式文件系统MFS(moosefs)实现存储共享
查看>>
Memcache知识点梳理(转)
查看>>
外网访问内网IIS
查看>>
有趣的Java编程题
查看>>
ASP.NET MVC3中使用AllowHtml attribute
查看>>
html dl dt dd标签元素语法结构与使用
查看>>
META标签
查看>>
VS2010开发SharePoint Workflow (二)
查看>>
发现一个下载操作系统的好的网站
查看>>
PHP中过滤html标签
查看>>
正则表达式 \b匹配
查看>>
网络安全之一
查看>>
树莓派3 之 启动 和 系统配置
查看>>
socket通信——UDP
查看>>
萤火虫 互同步
查看>>
我的友情链接
查看>>
####linux下搭建NIS服务器
查看>>
路由、交换原理
查看>>
数据库数字参考表的妙用
查看>>
检查多个IP是否ping通的两种脚本
查看>>