声明:java
本篇博客纯粹是技术的探讨。算法
1、前言网络
北京、上海、深圳、杭州等不少城市都对小客车增量进行调控,获取车牌的其中一个办法是竞价,那么是哪些因素决定着车牌的价格呢?是否有算法能够预测车牌的价格呢?本篇博客尝试着作一些探讨。函数
2、因子选择学习
如下是杭州21个月车牌竞价相关数据测试
一、物品价值的本质编码
物品的价值的大小,本质上而言是人类在共同认知下所赋予的,对人类生活起着重要影响的物品,人类确定会在共同的认知下赋予其价值,例如衣食住行相关的各类物品。至于价值的多少,大部分状况下都是由供需关系决定,比方说常听到的“物以稀为贵”、“洛阳纸贵”这些话,都是反映了供需关系决定了价格。.net
对于上面车牌竞价数据,反映供需关系的因素咱们应该拿出来做为因子,那么很容易看出,【有效编码数】是反映了“需”的因素(【申请编码数】因为不是所有审核经过的因素,因此不能做为因子),【投放指标数】是反映了“供”的因素。code
二、平均报价blog
【平均报价】反映的是人们对车牌的一个心理价位,固然也有人是抱着试试看,一直报最低价,假设全部人都报最低价,平均值确定是最低价。事实上,并不是如此,绝大多数人,会按照本身所承认的车牌价格来报价,那么平均报价,本质而言反映的是人们所共同承认的价值。
那么两次平均报价,确定应该本选择为因子。
那么最终选择出来的因子以下:
【投放指标数】、【有效编码数】、【第一次播报均价】、【第二次播报均价】
3、数据集的选择
仔细观察数据,16年和17年数据不论是均价、仍是最低成交价,都有很大差异,那么反映了人们所共同认知的车牌价值是不一样的,因此,选定2017年1月的数据到2018年2月的数据为数据集。
4、模型
目标:预测出本月车牌的最低成交价
【投放指标数】、【有效编码数】、【第一次播报均价】、【第二次播报均价】这四个指标影响着车牌价格,具体是怎么样影响的呢?咱们设想有个黑盒,把这四个指标扔进去相互做用以后,获得一个结果,这个结果就是最低价。
那么,这些因子对最低价产生的怎样的影响呢?多是线性的、也多是非线性的,咱们不得而知。中间的盒子,咱们能够把他当成一个函数F,反正一堆参数进去,求得了一个值,因而,
【最低价】=F(投放指标数,有效编码数,第一次播报均价,第二次播报均价),那么函数F究竟是什么呢?咱们不知道,可是咱们有历史数据,神经网络能够逼近任意的函数,咱们就来逼近一下试试。
咱们整理一下数据集:
用weka的多层感知机来构建一个神经网络。
学习率设为0.001,迭代500000次,获得以下结果,已经在数据集上逼近了一个函数。
5、预测
将训练好的模型保存下来,复制到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,两次播报平均价分别为3072六、31023,惟一不知道的因子是有效编码数,对于有效编码数咱们推测一下,2017年2月为2539,可能因为春节的缘由你们注意力不在车牌上面,那么本月,人数应该会增多,咱们以2600或者2700来估算一下。
当有效编码数为2600时,预测最低价为:35251.22
当有效编码数为2700时,预测最低价为:35986.43
实际上今天出来的最低成交价为:34300,与预测结果出入不大。同时基于34300这个结果,咱们预测一下本月的有效编码数:2460。今天结果还没出来,等结果出来,咱们验证一下。
特别说明:cp_head.arff是为了构建测试集而用,其实是对特征数据类型的定义,定义以下:
@relation cp
@attribute a numeric
@attribute b numeric
@attribute c numeric
@attribute d numeric
@attribute r numeric
@data
6、总结
预测值与实际值相差不大,效果差强人意,数据实际上能够反映人对客观事物价值的评价,人的内心活动,同时也反映了人对一个事物的纠结万分与考虑再三的思考与计算……
以前在某本书上看过一句话:世间万物皆显偶然之态,但远比想象的容易预测。
---------------------------------------------------------------------------------------------------------
快乐源于分享。
此博客乃做者原创, 转载请注明出处