神經網絡算法對車牌價格的預測

聲明: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、總結

    預測值與實際值相差不大,效果差強人意,數據實際上能夠反映人對客觀事物價值的評價,人的內心活動,同時也反映了人對一個事物的糾結萬分與考慮再三的思考與計算……

    以前在某本書上看過一句話:世間萬物皆顯偶然之態,但遠比想象的容易預測。

 

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

快樂源於分享。

此博客乃做者原創, 轉載請註明出處

相關文章
相關標籤/搜索