神经网络算法对车牌价格的预测

声明:

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

一、前言

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

二、因子选择

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

   《神经网络算法对车牌价格的预测》

    1、物品价值的本质

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

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

    2、平均报价

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

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

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

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

三、数据集的选择

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

四、模型

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

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

《神经网络算法对车牌价格的预测》

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

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

    我们整理一下数据集:

    《神经网络算法对车牌价格的预测》

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

《神经网络算法对车牌价格的预测》

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

《神经网络算法对车牌价格的预测》 

五、预测

    将训练好的模型保存下来,复制到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

@attribute a numeric
@attribute b numeric
@attribute c numeric
@attribute d numeric
@attribute r numeric

@data

六、总结

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

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

 

———————————————————————————————————

快乐源于分享。

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

 

 

    原文作者:神经网络算法
    原文地址: https://blog.csdn.net/dong_lxkm/article/details/80575112
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞