第14章 KEY
三天後,專項會議室,第一輪盲測。
數據中心把當天要跑的樣本數據集放進了公司項目目錄。
本輪測試里,校驗的事故標籤只認公開、中型及以上、時間地點可核對,能和對應監測數據對上的地質與工程事件。
標籤單獨放在另一張表里,由沒有參加建模的同事保管。專項組提交預測編號後,數據中心再回傳對照結果。
投影屏上只有兩個很長的參數編號。
原模型幾乎沒有注釋。
專項組在多次回測七城數據後把這兩個參數篩出來,陸沉接手後只做覆核,連權重也沒動。
第一個參數後面關聯著地下水、地表微形變、古河道裂隙帶和局部深地施工擾動等十幾個特徵。
原代碼里,光計算這個參數的邏輯就寫了七百多行,中間套著密密麻麻的未知公式和魔鬼數字。
小組裡的專家早在當初第一輪分析的時候就把這個參數拎出來了。
因為按現有理論,這些特徵之間沒什麼關聯,很難混在一起。這個參數看著就是一個冗餘項,應該被直接剔除。
但是在對七城的歷史數據樣本做回測時,這個參數又表現出一種神奇的規律:
它大部分時間內都很平穩。
但在七城沉降前的某一個時期,均出現過不正常的「突跳」。
第二個參數則不同,它關聯的特徵都變化很慢,彼此也可以說是相互關聯的。
但是它關聯的特徵在現有理論中還沒有被如此組合過。
它不跟著某一場事件起落,只在七城最近幾年的回測里一點點爬升。
今天專項組不再找參數,也不驗證模型整體的事故準確率,而是只驗證這兩個參數離開七城之後還能剩下什麼。
原編號太長,負責記錄的人在紀要里暫時寫成了K和L。名稱上寫著待定。
負責統計的年輕專家把測試規則投到屏幕上。
「五十二個城市切片,每份都停在隨機截點。截點後十二個月的事件記錄不在樣本里。K的算法、閾值,昨天已經凍結。」
地下工程專家翻到最後一頁:「李哥,數據不全啊,缺項的這幾個怎麼處理?」
「按照原定規則處理。缺多少記多少,不能用估計值補。」
「那有幾份肯定跑不出來。」
「跑不出來也算結果。」
陸沉坐在長桌盡頭,沒有插話。
(由於緩存原因,請用戶直接瀏覽器訪問 TW 看書網體驗佳,𝘴𝘩𝘶.𝘵𝘸輕鬆讀 網站,觀看最快的章節更新)
過去兩天,光是數據清理規則,下面的專家們就爭了好幾次。
有人主張先剔除資料不全的城市,有人堅持全部保留。
最後只定下一條原則:程序啟動後,誰也不許根據答案調參數。想改,留到下一批再說。
九點二十,程序開始跑。
前十幾份沒有反應。到第二十一份,一座城市北部區域的K值在連續四個採樣點都越過了閾值。
接下來兩個小時,又有六份出現了類似的情景。
七個編號被抄到白板上。
地下工程專家看著白板:「就這些?」
負責統計的年輕人沒回頭:「就這些,沒了。」
水文專家把七份資料抽出來。發現其中有三份數據不全:第一份地下水記錄缺了六周,第二份只有城市級施工總量,第三份的形變監測點中途換過位置。
「這三份先拿掉。」他說,「放進來沒法比。」
「不能因為難看就扔掉。」陸沉開口,「缺項記下來,結果先保留。」
負責統計的年輕人把七個編號提交給數據中心。幾分鐘後,對照表發了回來。
屏幕分成兩欄。左邊是七個編號,右邊是截點後十二個月的事件記錄。
第一個編號後面,沒有查到符合口徑的地質事件。
第二個有一場礦區的大範圍塌陷。第三個在連續降雨後某小區幾棟單元樓發生突發性沉降。第四個沒有查到公開的事件記錄,但某區部分監測資料在截點後三個月中斷。第五個是地鐵施工工程突涌,第六個是舊隧道突發坍塌導致路面沉陷,第七個是一場國道邊的山體滑坡,本身遇難人數不多,但範圍極大。
七次K突跳,五次後面查到了地質事件,一次因監測中斷無法核實,還有一次沒有查到對應記錄。
「命中率還挺高。」旁邊有人說。
年輕人沒說話,滑鼠往下滾了滾。對照表下半部分還列著剩下四十五份切片。
裡面還查到十一起事件。
沒有一處出現K。
「……」
剛才那人不說話了。
地下工程專家摘下眼鏡,揉了揉眼睛。
「漏成這樣,不能拿它做排除。」
「七個樣本還談不上命中率。」年輕專家說,「我們先看過舊數據,尤其是七城的數據,才從上百個參數裡挑出這兩個。多重篩選的帳還沒算。」
有人指著第四個編號:「這份怎麼算?」
「我的建議是,不算。」
「那不就只剩五個?」
「五個就五個。我的意思是暫時不知道怎麼算的就別算。別急著替它找事故。」
陸沉想了想,在紀要上劃掉了「有效預警」,改成「異常組合」。
現有結果只能說明,K高值不只出現在七城;它突跳了,後續記錄到事件的比例值得再查,沒突跳,也證明不了什麼。
那兩個沒有結果的編號,到底是真誤報、漏記,還是公開記錄漏掉了事件,現有資料分不出來。
「換一批還能這樣,再談別的。」他說。
「陸總說的對,多測幾批再看看。」旁邊人附和道。
水文專家看了眼時間:「下午還跑全國名單?」
「不跑。先看漏掉的十一處。」
「K都沒出來,還看什麼?」
陸沉把那十一份資料調到一頁:「看它為什麼沒出來。」
---
午飯送到時,十一份切片已經按事件時間對齊。
K在其中幾份里有過波動,但離之前得到的閾值還比較遠,也沒有共同的提前量。
有人另開了一份分析副本,只保留地下水和形變,又調了幾個特徵值。三座城勉強能解釋,換到第四座,方向就反了。
負責地下工程的專家端著飯盒看了幾分鐘,擺擺手示意這麼幹不行。
「別硬湊了。按這個辦法調下去,十一座城能調出十一套理由。」
沒人反對。
坐在另一台電腦前的水文專家卻沒有動。他把K關掉後,屏幕上還留著L按監測網格輸出的原始結果。
「這是什麼?」
「L。」年輕專家嘴裡還含著飯,「早上一起跑的。單看每一座都沒到閾值,我就沒報。」
「合著只有北方七城的過了,難道和大範圍沉降有關?還是和烈度有關?」
「不一定。」
「我建議堆疊起來。」
「這沒道理啊,不同城市的值,加一起有什麼用?」
「先試試看,能不能發現什麼規律。」
年輕專家把每座城市的L高值面積按時間畫成一條線,十一條線被堆到同一張圖上。沒有哪一條在事件前突然跳高,也找不到固定的拐點。
可把時間往前拉幾年,越來越多的線開始往上走。回到區域圖上看,早期只是零星幾塊,後來連成片的地方越來越多,邊緣也在往外推。
負責統計的年輕專家把未查到事件的切片也放進來,趨勢還在。
紀要里的「事件前異常」剛敲進去,又被刪掉。有些城市連續幾年沒有查到這類事件,L同樣很高。圖上暫時能留下的事實,只有高值範圍正在擴大。
水文專家讓人把同期記錄到的事件數調出來,按半年重新統計。屏幕左邊是 L的高值面積,右邊是事件數量。兩條線都在近幾年抬頭,大致方向甚至有些相似。
負責統計的年輕專家摸了摸下巴,覺得不太對:
「先別下結論。這種圖最容易出虛假相關,就像那個經典的段子一樣。」
「哪個段子?」
「某個演員一年拍幾部電影,和某地泳池溺亡人數,強相關。兩條線貼的比這個還緊。」他數了數手指,「總不能說他多接一部戲,泳池裡就多死一個。」
桌邊有人笑了一聲。
水文專家沒笑:「那你還等什麼?處理下啊」
「別急,在想方案呢。」
他把監測點數量、城市建設規模、降雨和老舊地下設施占比依次放進控制項,又分別檢查 L提前一季、半年和一年的情況。
第一輪結果出來時,桌上的飯菜已經涼了。
去掉共同的年份趨勢以後,兩者的同向關係明顯減弱。按季度差分,有兩段甚至走向相反。
「差不多可以刪了。」有人說。
「不急。」年輕專家把數據完整的城市單獨拉出來,「看看這塊,這部分還有。」
剩下的點很散,已經看不出剛才那條整齊的直線。用半年前的 L對照後續記錄到的事件數,其中兩組樣本仍有同方向的弱變化;換一組地區,關係又沒了。
水文專家把飯盒蓋上。
「不好說。可能是共同原因,也可能什麼都不是。」
「那紀要怎麼寫?」
「照直寫,看見什麼寫什麼。別替它命名。」
年輕專家敲了幾行,又停住:「疑似同向變化?」
「可以,先這樣吧。」
陸沉把紀要拿過來,在末尾補了兩句。
K:本輪匿名樣本中共出現七次突跳,五次與隨後記錄到的具體事件同現,兩次未命中;漏報明顯,誤報水平待覆測。
L:探索性分析中,當前樣本的整體數值和高值網格占比隨年份上升;控制共同趨勢和監測覆蓋後,與這類事件記錄頻率的關係減弱,但尚未完全消失。
他沒有在兩個字母之間畫箭頭。
「下一批分開測。」陸沉說,「K換一套沒進過模型的城市切片。L先處理監測覆蓋,再做跨地區復現。兩者不互通,不檢查依賴關係。」
散會前,負責統計的年輕人又指了指白板上的七個編號。
「那個什麼也沒發生的,還留著嗎?」
「先放著,原始記錄不能刪。」陸沉拍板。
「一直留著?」
「留著。確認是誤報就改標註,不刪記錄。」
紀要和對照表存進項目目錄後,陸沉剛回辦公室,秘書的電話就打了進來。
「陸總,江城那邊有位負責人找您。通過公司總機轉過來的,說想諮詢七城報告裡的一些技術問題。」
「好,通知上面領導了麼。」
「說了,張總讓您全權處理。」
「行,接進來吧。」
對面先報了單位和姓名,沒有寒暄。
「陸工,我們看過您牽頭的七城風險報告。報告裡沒有提到林嶼先生,但它是在澄州峰會上林嶼公開預言七城之後完成的。現在有人認為,您這篇報告是受到他的影響。」
陸沉看著桌上的電話:「你們是想問七城報告,還是想問林嶼?」
「我們不評價外界的傳言。我們想問的是江城。」
對方語氣開始嚴肅起來。
「七月的峰會現場,林嶼先生當時說,十三個月後,江城會發生八點三級地震。」
「本來我們第一反應是不現實。江城不處於地震帶,何況預言地震這個事兒,技術上沒有可行性。」
「但是七城的事出了以後,我們認為這個消息必須重新重視起來。」
「現在最重要的問題是,我們算不出來江城地震的概率和時間窗口。」
「要行動,我們不能僅憑一個預言。」
「您那套方法,能不能只根據江城的數據做一次獨立覆核?。」
「江城這條預言是林嶼給出的,不是我。」陸沉說,「他的依據,我解釋不了。」
「所以我們只請您看數據。」
「我們這邊可以做獨立計算。但現有方法還在驗證,我必須事先說明,這個方法判斷不了某個月這麼精確的時間,也推不出八點三級。最後的結果可能和林嶼完全相反。」
「這正是我們找您的原因。」
對方提出先提供一份數據目錄。正式資料由江城脫敏,通過公司項目渠道交接,只限現有監測和歷史記錄,不涉及他們內部如何處理林嶼的預言。
陸沉答應先看目錄,沒有替專項組承諾結論。
通話結束後,陸沉把對方的聯繫方式記進項目通訊錄。到了停車場,他才撥通林嶼的電話。
「江城也來找我了。」
「他們想問什麼?」
「問七城報告是不是受過你提醒。還想讓我拿他們的數據,獨立計算。」
「你怎麼回的?」
「我說江城的預言不是我做的。我只能看數據。」
隔了幾秒,林嶼才說:「晚上去倉庫,我叫上柏言他們,一起看看這事怎麼辦。」
「好。」
陸沉掛斷電話,拉開了車門。
數據中心把當天要跑的樣本數據集放進了公司項目目錄。
本輪測試里,校驗的事故標籤只認公開、中型及以上、時間地點可核對,能和對應監測數據對上的地質與工程事件。
標籤單獨放在另一張表里,由沒有參加建模的同事保管。專項組提交預測編號後,數據中心再回傳對照結果。
投影屏上只有兩個很長的參數編號。
原模型幾乎沒有注釋。
專項組在多次回測七城數據後把這兩個參數篩出來,陸沉接手後只做覆核,連權重也沒動。
第一個參數後面關聯著地下水、地表微形變、古河道裂隙帶和局部深地施工擾動等十幾個特徵。
原代碼里,光計算這個參數的邏輯就寫了七百多行,中間套著密密麻麻的未知公式和魔鬼數字。
小組裡的專家早在當初第一輪分析的時候就把這個參數拎出來了。
因為按現有理論,這些特徵之間沒什麼關聯,很難混在一起。這個參數看著就是一個冗餘項,應該被直接剔除。
但是在對七城的歷史數據樣本做回測時,這個參數又表現出一種神奇的規律:
它大部分時間內都很平穩。
但在七城沉降前的某一個時期,均出現過不正常的「突跳」。
第二個參數則不同,它關聯的特徵都變化很慢,彼此也可以說是相互關聯的。
但是它關聯的特徵在現有理論中還沒有被如此組合過。
它不跟著某一場事件起落,只在七城最近幾年的回測里一點點爬升。
今天專項組不再找參數,也不驗證模型整體的事故準確率,而是只驗證這兩個參數離開七城之後還能剩下什麼。
原編號太長,負責記錄的人在紀要里暫時寫成了K和L。名稱上寫著待定。
負責統計的年輕專家把測試規則投到屏幕上。
「五十二個城市切片,每份都停在隨機截點。截點後十二個月的事件記錄不在樣本里。K的算法、閾值,昨天已經凍結。」
地下工程專家翻到最後一頁:「李哥,數據不全啊,缺項的這幾個怎麼處理?」
「按照原定規則處理。缺多少記多少,不能用估計值補。」
「那有幾份肯定跑不出來。」
「跑不出來也算結果。」
陸沉坐在長桌盡頭,沒有插話。
(由於緩存原因,請用戶直接瀏覽器訪問 TW 看書網體驗佳,𝘴𝘩𝘶.𝘵𝘸輕鬆讀 網站,觀看最快的章節更新)
過去兩天,光是數據清理規則,下面的專家們就爭了好幾次。
有人主張先剔除資料不全的城市,有人堅持全部保留。
最後只定下一條原則:程序啟動後,誰也不許根據答案調參數。想改,留到下一批再說。
九點二十,程序開始跑。
前十幾份沒有反應。到第二十一份,一座城市北部區域的K值在連續四個採樣點都越過了閾值。
接下來兩個小時,又有六份出現了類似的情景。
七個編號被抄到白板上。
地下工程專家看著白板:「就這些?」
負責統計的年輕人沒回頭:「就這些,沒了。」
水文專家把七份資料抽出來。發現其中有三份數據不全:第一份地下水記錄缺了六周,第二份只有城市級施工總量,第三份的形變監測點中途換過位置。
「這三份先拿掉。」他說,「放進來沒法比。」
「不能因為難看就扔掉。」陸沉開口,「缺項記下來,結果先保留。」
負責統計的年輕人把七個編號提交給數據中心。幾分鐘後,對照表發了回來。
屏幕分成兩欄。左邊是七個編號,右邊是截點後十二個月的事件記錄。
第一個編號後面,沒有查到符合口徑的地質事件。
第二個有一場礦區的大範圍塌陷。第三個在連續降雨後某小區幾棟單元樓發生突發性沉降。第四個沒有查到公開的事件記錄,但某區部分監測資料在截點後三個月中斷。第五個是地鐵施工工程突涌,第六個是舊隧道突發坍塌導致路面沉陷,第七個是一場國道邊的山體滑坡,本身遇難人數不多,但範圍極大。
七次K突跳,五次後面查到了地質事件,一次因監測中斷無法核實,還有一次沒有查到對應記錄。
「命中率還挺高。」旁邊有人說。
年輕人沒說話,滑鼠往下滾了滾。對照表下半部分還列著剩下四十五份切片。
裡面還查到十一起事件。
沒有一處出現K。
「……」
剛才那人不說話了。
地下工程專家摘下眼鏡,揉了揉眼睛。
「漏成這樣,不能拿它做排除。」
「七個樣本還談不上命中率。」年輕專家說,「我們先看過舊數據,尤其是七城的數據,才從上百個參數裡挑出這兩個。多重篩選的帳還沒算。」
有人指著第四個編號:「這份怎麼算?」
「我的建議是,不算。」
「那不就只剩五個?」
「五個就五個。我的意思是暫時不知道怎麼算的就別算。別急著替它找事故。」
陸沉想了想,在紀要上劃掉了「有效預警」,改成「異常組合」。
現有結果只能說明,K高值不只出現在七城;它突跳了,後續記錄到事件的比例值得再查,沒突跳,也證明不了什麼。
那兩個沒有結果的編號,到底是真誤報、漏記,還是公開記錄漏掉了事件,現有資料分不出來。
「換一批還能這樣,再談別的。」他說。
「陸總說的對,多測幾批再看看。」旁邊人附和道。
水文專家看了眼時間:「下午還跑全國名單?」
「不跑。先看漏掉的十一處。」
「K都沒出來,還看什麼?」
陸沉把那十一份資料調到一頁:「看它為什麼沒出來。」
---
午飯送到時,十一份切片已經按事件時間對齊。
K在其中幾份里有過波動,但離之前得到的閾值還比較遠,也沒有共同的提前量。
有人另開了一份分析副本,只保留地下水和形變,又調了幾個特徵值。三座城勉強能解釋,換到第四座,方向就反了。
負責地下工程的專家端著飯盒看了幾分鐘,擺擺手示意這麼幹不行。
「別硬湊了。按這個辦法調下去,十一座城能調出十一套理由。」
沒人反對。
坐在另一台電腦前的水文專家卻沒有動。他把K關掉後,屏幕上還留著L按監測網格輸出的原始結果。
「這是什麼?」
「L。」年輕專家嘴裡還含著飯,「早上一起跑的。單看每一座都沒到閾值,我就沒報。」
「合著只有北方七城的過了,難道和大範圍沉降有關?還是和烈度有關?」
「不一定。」
「我建議堆疊起來。」
「這沒道理啊,不同城市的值,加一起有什麼用?」
「先試試看,能不能發現什麼規律。」
年輕專家把每座城市的L高值面積按時間畫成一條線,十一條線被堆到同一張圖上。沒有哪一條在事件前突然跳高,也找不到固定的拐點。
可把時間往前拉幾年,越來越多的線開始往上走。回到區域圖上看,早期只是零星幾塊,後來連成片的地方越來越多,邊緣也在往外推。
負責統計的年輕專家把未查到事件的切片也放進來,趨勢還在。
紀要里的「事件前異常」剛敲進去,又被刪掉。有些城市連續幾年沒有查到這類事件,L同樣很高。圖上暫時能留下的事實,只有高值範圍正在擴大。
水文專家讓人把同期記錄到的事件數調出來,按半年重新統計。屏幕左邊是 L的高值面積,右邊是事件數量。兩條線都在近幾年抬頭,大致方向甚至有些相似。
負責統計的年輕專家摸了摸下巴,覺得不太對:
「先別下結論。這種圖最容易出虛假相關,就像那個經典的段子一樣。」
「哪個段子?」
「某個演員一年拍幾部電影,和某地泳池溺亡人數,強相關。兩條線貼的比這個還緊。」他數了數手指,「總不能說他多接一部戲,泳池裡就多死一個。」
桌邊有人笑了一聲。
水文專家沒笑:「那你還等什麼?處理下啊」
「別急,在想方案呢。」
他把監測點數量、城市建設規模、降雨和老舊地下設施占比依次放進控制項,又分別檢查 L提前一季、半年和一年的情況。
第一輪結果出來時,桌上的飯菜已經涼了。
去掉共同的年份趨勢以後,兩者的同向關係明顯減弱。按季度差分,有兩段甚至走向相反。
「差不多可以刪了。」有人說。
「不急。」年輕專家把數據完整的城市單獨拉出來,「看看這塊,這部分還有。」
剩下的點很散,已經看不出剛才那條整齊的直線。用半年前的 L對照後續記錄到的事件數,其中兩組樣本仍有同方向的弱變化;換一組地區,關係又沒了。
水文專家把飯盒蓋上。
「不好說。可能是共同原因,也可能什麼都不是。」
「那紀要怎麼寫?」
「照直寫,看見什麼寫什麼。別替它命名。」
年輕專家敲了幾行,又停住:「疑似同向變化?」
「可以,先這樣吧。」
陸沉把紀要拿過來,在末尾補了兩句。
K:本輪匿名樣本中共出現七次突跳,五次與隨後記錄到的具體事件同現,兩次未命中;漏報明顯,誤報水平待覆測。
L:探索性分析中,當前樣本的整體數值和高值網格占比隨年份上升;控制共同趨勢和監測覆蓋後,與這類事件記錄頻率的關係減弱,但尚未完全消失。
他沒有在兩個字母之間畫箭頭。
「下一批分開測。」陸沉說,「K換一套沒進過模型的城市切片。L先處理監測覆蓋,再做跨地區復現。兩者不互通,不檢查依賴關係。」
散會前,負責統計的年輕人又指了指白板上的七個編號。
「那個什麼也沒發生的,還留著嗎?」
「先放著,原始記錄不能刪。」陸沉拍板。
「一直留著?」
「留著。確認是誤報就改標註,不刪記錄。」
紀要和對照表存進項目目錄後,陸沉剛回辦公室,秘書的電話就打了進來。
「陸總,江城那邊有位負責人找您。通過公司總機轉過來的,說想諮詢七城報告裡的一些技術問題。」
「好,通知上面領導了麼。」
「說了,張總讓您全權處理。」
「行,接進來吧。」
對面先報了單位和姓名,沒有寒暄。
「陸工,我們看過您牽頭的七城風險報告。報告裡沒有提到林嶼先生,但它是在澄州峰會上林嶼公開預言七城之後完成的。現在有人認為,您這篇報告是受到他的影響。」
陸沉看著桌上的電話:「你們是想問七城報告,還是想問林嶼?」
「我們不評價外界的傳言。我們想問的是江城。」
對方語氣開始嚴肅起來。
「七月的峰會現場,林嶼先生當時說,十三個月後,江城會發生八點三級地震。」
「本來我們第一反應是不現實。江城不處於地震帶,何況預言地震這個事兒,技術上沒有可行性。」
「但是七城的事出了以後,我們認為這個消息必須重新重視起來。」
「現在最重要的問題是,我們算不出來江城地震的概率和時間窗口。」
「要行動,我們不能僅憑一個預言。」
「您那套方法,能不能只根據江城的數據做一次獨立覆核?。」
「江城這條預言是林嶼給出的,不是我。」陸沉說,「他的依據,我解釋不了。」
「所以我們只請您看數據。」
「我們這邊可以做獨立計算。但現有方法還在驗證,我必須事先說明,這個方法判斷不了某個月這麼精確的時間,也推不出八點三級。最後的結果可能和林嶼完全相反。」
「這正是我們找您的原因。」
對方提出先提供一份數據目錄。正式資料由江城脫敏,通過公司項目渠道交接,只限現有監測和歷史記錄,不涉及他們內部如何處理林嶼的預言。
陸沉答應先看目錄,沒有替專項組承諾結論。
通話結束後,陸沉把對方的聯繫方式記進項目通訊錄。到了停車場,他才撥通林嶼的電話。
「江城也來找我了。」
「他們想問什麼?」
「問七城報告是不是受過你提醒。還想讓我拿他們的數據,獨立計算。」
「你怎麼回的?」
「我說江城的預言不是我做的。我只能看數據。」
隔了幾秒,林嶼才說:「晚上去倉庫,我叫上柏言他們,一起看看這事怎麼辦。」
「好。」
陸沉掛斷電話,拉開了車門。