轉帖|實施案例|編輯:龔雪|2017-04-25 14:00:19.000|閱讀 511 次
概述:機動車搖號概率低于千分之一,一輩子都搖不到號的可能性接近一半,本文帶你一起來探探究竟!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
文|沙漠之鷹
機動車搖號概率低于千分之一,一輩子都搖不到號的可能性接近一半。
先開個胃:讀者可以先看看自己申請編碼的第7位,如果是0,多半你已經搖到號了,如果是4或者5,那恐怕概率很低了。
兩月磨一劍,看看我們能否解決這些問題:
筆者盡量保證客觀,但不對文中的猜想做任何保證。
能夠擁有搖號資格是比較幸運的:
平均每年新增50萬搖號用戶,學生應該占了相當的比例。學生即使畢業,離開北京,好像也能參與搖號,因為沒有發現成規模的未搖中但停止搖號的用戶。
搖號社保滿五年的判定和買房不一樣。搖號時,社保允許斷月,不能斷年。但買房則一個月都不能斷。所以搖號的門檻還是低了很多。
當你搖號的次數每多六次,中簽比率就增加一倍。但是三次搖號后如果沒有按時上官網重新申請,則之后不會自動搖號,忘記重新申請的人非常多,好在中簽比率得以保留。一旦搖中卻沒有購買,中簽倍率清零。
當你注冊之后,搖號系統會提供13位的唯一ID,與身份證綁定,不論是否重新登記,ID都是確定的。通過審查之后,即可進入搖號池。
搖號池是按照ID的數值,從小到大升序排列的。當用戶的中簽概率不相等時,會稍微復雜一些::
當參與搖號的ID確定后,搖號池也是唯一確定的。
計算機生成的隨機數,就是一連串看似隨機生成,但背后有規律的數字序列。但是,生成隨機數需要“種子”(一個數字),如果不特別指定,種子是當前的操作系統時間,所以每次程序運行結果都不一樣。但當指定了確認的種子號碼,生成的序列就是確定的。
公證人員從12個球中無放回地抽取6個球,每個球表示一個市民代表。每個市民在電腦上點擊確定,電腦隨機生成0-9的數字,最后總共6位隨機號碼。
之后,我們就能根據生成的序列從搖號池里挑選幸運兒了,以上面的圖為例,依次挑選第1個,第8個,第32個…已經被選中的元素會被跳過。
(在附錄提供了搖號程序的偽代碼)
當搖號池和6位隨機種子都確定時,誰能搖中就是確定的。不過,這個產生隨機數種子的【隨機數算法】并沒有公開。我們無法驗證其到底是隨機產生的,還是事先定義好的。
人為發現規律有些困難,我們先用最簡單的線性模型,研究在整個數據集上,是否能發現某些號碼高中簽概率的特征,框圖如下:
十進制數可以被打散,比如7,可以打散為
0,0,0,0,0,0,0,1,0,0
,第七個數為1,其他為0。這樣,用戶的13位注冊ID可以表示為130維的布爾特征(feature),而將是否搖中,作為要預測的結果(label)。
從所有472萬用戶中,隨機抽取20萬用戶作為訓練集,另外20萬用戶作為測試集,使用logistic回歸模型,最終繪出了ROC曲線【附錄2】如下:
這樣的曲線,證明預測效果是相當好的!AUC值接近0.8。說人話,這個模型能夠有很高的幾率預測出一個特定號碼是否中簽!
我當時就驚呆了!趕緊把模型在130維特征上的權重分布繪制出來(線性模型具備很好的解釋性)
下面的曲線更是讓人詫異!
從這個曲線上表明,13位數字的第七位,極大地影響了是否被抽中!
我們對全局數據集進行分析:當ID第七位為0時,你有53%的可能性抽到,抽中的概率比沒抽中還高。隨著第七位數字逐漸變大,中簽率也越來越低,當第七位為5時,中簽率接近兩千分之一了!【附錄3】
那是不是只要給我分配一個第七位為0的號碼,就像投硬幣投出正面,我就能在兩到三次搖號搖中?
我曾經和現在的你一樣,詫異而激動。后來發現,這個規律對于全局數據集有效,但對某一期搖號,線性模型沒有任何預測能力。 這到底是怎么回事呢?這說明,ID編碼并非隨機,否則不會產生如此明顯的偏差。
ID可能與用戶的生日,身份證,性別或某些特定屬性有關系。我們把13位編碼,每一位都做了分析,下面的圖是沙漠君的部分推理:
前四位看樣子確實隨機。基本能根據7,8位的數值推斷出號碼注冊的期號。
后來經過反復分析,第7位到第13位,總共7位,是數據庫的自增主鍵!每個新用戶注冊,這個7位的數字就會加1,這七位,代表你是系統中的第幾位用戶!
所以到2016年第3期為止,系統注冊的人數高達572萬,但總共參與搖號的僅有467萬,有105萬人雖注冊,卻沒有參與,可能原因是沒有通過審核。(記不記得那些苛刻的條件?)
了解了上面的原理,我們如何讓特定的號碼搖中?提前聲明,僅為思想實驗,沒有任何真實性和指代性。
對于方法1,假設想讓第8個和第40個中簽,我們就可以搜索出某個特定種子,讓它生成的序列正好覆蓋8和40。如果需要中簽的號碼特別多,則不一定能覆蓋所有目標號碼,于是就有方法2和方法3。
方法2參考圖中示例,假設原先E中簽,現在為了C中簽,在C之前插入C0和C1(這都是兩個無效號碼,不代表任何人),即可將C擠到原來E的位置,從而C中簽。
方法3和2類似,但是是清除了一些號碼。空號碼是否參與此次搖號,肯定無人關心,而一般人也難以驗證自己是否參與了本次搖號。
下面我們對比不同城市搖號系統的區別,看看是否有其他規律
假設能通過用戶ID能知道其注冊順序和大概的注冊時間,我們在搖號池數據中發現了一些有趣的模式:
用戶ID按照注冊時間依次遞增,但ID并不連續,可能因為未通過審核,但有的不連續區間高達20以上,也就是連續20個用戶注冊了,而他們一個都沒有通過審核!這樣的情況還非常多。
每年都有幾千個老號碼首次參與搖號,即使到了2016年,也會有上千個本應該在2011年就首次參與搖號的號碼。也許是這些人交夠了五年社保,通過了資格審查吧。
有210萬用戶曾經中斷了搖號!中斷時間有長有短,有的中斷了1期,有的只搖了第一期。這個比例居然占了總人數的接近一半。
筆者之前忘了重新登記,導致曾有接近一年時間沒有參與搖號,悲劇的是每個月百度都會給我發送未中簽的短信。我一直以為自己參與了搖號呢。
為什么這家神秘的公司,不能稍微提醒一下那些忘了重新登記的用戶呢?要知道大家基本都是通過手機號來注冊登陸的呀。
回到第5節的問題【能否讓特定號碼中簽】,記不記得每個用戶前面的1-4位的四位隨機數?因為搖號池是按照總體13位數字來排序的,因此只要控制1-4位隨機數,就能控制一個新產生的號碼,插入到任何想插入的位置。
如果一個用戶沒有參與某一期的搖號,他自己都是非常難以發現的。
嗯…..
北京,杭州,天津,深圳和廣州都是需要搖號的。只有上海和杭州拍牌。所有城市的搖號系統,都是同一家公司開發的,用戶編碼都是13位數字,都符合上述規律。網站和設計都非常相似,只是換了配色。
北京不少自住房搖號系統,也是這家神秘公司開發的。不得不對這家地處北四環西路的神秘公司產生濃濃的敬佩之情。
我們對比了不同城市的信息公開程度,整理表格如下:
所有城市都不會同時提供以上五種信息。2013年以前,北京是提供中簽者姓名的,可是因為一些姓名(如【劉雪梅】)重復中簽太多,導致輿論風波,后來就取消掉了。即使如此,北京依然是信息最為公開的。
再如廣州,只提供了中簽者,其他人是否參與抽簽和隨機數種子都不知道,搖號視頻也不公開。怪不得不少網民反響強烈呢,貴司要不考慮一下?
這套搖號系統工作了接近6年,但卻并非無懈可擊。但我愛北京,我相信北京的搖號系統一定是公正而公平的。
我們要感謝北京的搖號系統,在幾個城市中的公開程度是最高的。但是,如果下面的內容能公開,那真是一大幸事:
也許有人會提到信息隱私的問題,難道搖中和沒搖中用戶的隱私不一樣么,要知道現在很多城市依然在公開搖中用戶的姓名呢。搜索引擎依然能找到早些年的中簽用戶名單。
其實限牌看似合理,卻徹底杜絕了資源的按需流動:早期不限購時期的車友,擁有好幾輛車;而2011年以后的市民,不論多么著急用車,都難以指望搖號,只能通過一些地下手段,來支付高昂的租車牌費用。二手房都可以買賣,但為什么二手車車牌不行呢?
也許是因為,一旦車牌能交易,搖號便失去了其所謂的【純潔性】,想想搖中了就相當于中了幾十萬的大獎,這一點也許是管理部門更不愿意看到的。而封死現在車牌的總數量也不可行,車企一定不干,河北車牌又要爆發了。
現在電動車搖號毫無壓力,只要申請就能中,沙漠君也查了很多電動車的信息,很不幸,滿足“質量還可以,基本能開”標準的電動車幾乎沒有,即使來自納稅人的高昂的補貼也不能改變這一局面。至于電動車,以后有時間我們可以單獨撰文討論一下。
當然有人說了,沒有車可以打車啊,現在滴滴和租車軟件多么方便,還比買車省錢,不用考慮停車啊。
我們先不論經濟賬,也不論成為有車一族的【自由】,想想某一天下大雨,老婆很晚才到家,回來第一句話就是,【打不到車,我老板開車把我送回來的】,這個時候你看著窗外遠去的車影,依稀還能看到那男人的嘴臉,一切吐槽都變得蒼白,心里只剩下三個字:【要有車】
1. 搖號程序的偽代碼(Python,僅作為演示,可能有紕漏)
slot_size=9 #搖號池大小 seed= 954732 #種子 quota= 3 array= [\'A\',\'B\',\'C\',...] random= Random(seed); selected=[] while len(selected)
ROC全稱為受試者工作特征曲線 (receiver operating characteristic curve), 以假陽性概率(False positive rate)為橫軸,擊中概率為縱軸所組成的坐標圖,繪制特定刺激條件下由于采用不同的判斷標準得出的不同結果畫出的曲線。
ROC曲線圍成的面積,就是AUC值。如果模型具備超強性能,那么曲線會盡可能靠近左上角,AUC值接近1; 若模型不具備任何預測能力,則ROC退化為一條對角線,AUC為1/2,和瞎猜沒什么區別。ROC相比于精確度和召回率,更能描述一個模型的整體特征。對任意一次特定搖號的數據繪制ROC,得到的就是對角線。
計算機從0開始,第六位也就是我們所說的第7位,橫軸二元組的(4,1)代表第七位值為4且搖中,(4,0)代表為4且未搖中。
估計有人又會因此傳謠了,【通過你的編碼預測吉兇和是否能夠搖中】然后刷爆朋友圈,這規律全局來看,確實是對的。但僅僅是越小的號碼越早注冊,搖號的次數越多,搖中的概率就會越大,僅此而已,哎。
我也曾嘗試做比如【第三位和第五位加起來是個質數】這樣喪心病狂的特征工程,還計劃用其他的非線性模型,但效果并不一定比線性模型好,這似乎難說是個機器學習問題。四位隨機數的模式也沒有繼續深究,如果你有興趣繼續研究,歡迎聯系我。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn