各位觀眾晚安,歡迎來到一場八幕的資料脫口秀。
你以為主角是「模型」?不,牠只是客串三分鐘的臨演。
先講個冷知識,讓你今晚睡不著:大家搶著學的「訓練模型」,在一個真實專案裡,大概只佔一成。剩下九成是什麼?是問對問題、是洗到你懷疑人生的髒資料、是上線後半夜被叫起來救火。
這行有句祖訓,八個字,貼在每個資料人的墓碑上:Garbage in, garbage out——垃圾進,垃圾出。你前面偷的懶,後面會加倍還你,本金加利息,童叟無欺。
所以今晚不聊演算法,我們聊一條八關流水線。八幕劇,每幕四個梗,帶你看一個資料專案怎麼從一句空話,變成一台真的會賺錢的系統。燈暗,開場——
第一幕,還沒碰資料,成敗就先定了一半。方向錯了,你跑得越快,離終點越遠。
老闆說:「幫我把業績搞起來。」這不是需求,這是許願池。你得把願望翻譯成資料聽得懂的人話——是要「揪出快跑掉的客人」,還是「找出最捨得花錢的金主」?問題模糊,答案再漂亮也是精美的廢話。
沒定 KPI 的專案,結局只有一種:驗收那天大家圍在螢幕前,「你覺得有變好嗎?」「好像有喔?」然後散會。開工前把數字釘死——準確率加 5%?成本砍一成?講清楚,免得最後變玄學。
你的模型上線,業績漲了。恭喜——但那是你的功勞,還是剛好碰上雙十一?沒設對照組,你永遠分不清是實力還是運氣。驗證方法要在動手前想好,不然結論全是自我感覺良好。
興高采烈規劃完,才發現要的資料公司根本沒有、或有但不能用。很多專案不是死在技術,是死在「巧婦難為無米之炊」。先盤點手上有什麼牌,再決定怎麼打,別先畫餅再哭。
第二幕,出門找米。米有很多種,可惜有些長得像米,其實是老鼠屎。
資料庫裡有、API 那邊有、公開資料集有、感測器也有。第一件事是把它們一個一個找出來、認清身分——格式長怎樣、多久更新一次、可不可靠。認錯米,後面整鍋粥都白熬。
乖乖排隊的結構化資料,多半躺在資料庫裡等你用 SQL 撈;不然就透過別人家的 API 拉。管道穩不穩,決定你是天天自動收米,還是天天手動搬米搬到崩潰。
你只問了老顧客,就以為全世界都愛你——這叫倖存者的錯覺。資料只採到某一群人,模型就會活在平行宇宙。最可怕的是這種偏差你看不到摸不著,卻能讓專案從骨子裡爛掉。
網頁爬蟲、伺服器日誌、用戶點擊紀錄——這些原始 Log 是海量金礦,但也是海量垃圾,一比一混在一起賣。金子在裡面,就看你後面幾關淘不淘得動。
第三幕,工程師登場。把「一次性搬米」升級成「自動送米到府」的供應鏈。
手動搬資料,第一次很勤勞,第三次就想離職。管線把「抽取→處理→存放」全自動化,讓資料像自來水一樣,打開就有。沒有它,你永遠停在一次性 Demo。
ETL 是老派媽媽:先把菜洗好切好,才准進冰箱;ELT 是現代人:先全塞進去,等要煮了再洗。前者嚴謹傳統,後者配上雲端數倉更任性彈性,看你家廚房多大。
ACID 保證交易做一半停電,不會留下一筆鬼帳;Schema 幫每個欄位排好座位。沒紀律的資料,最後會變成一團誰都不敢碰的漿糊,碰了就崩。
資料倉儲是潔癖:只收整理好、排排站的結構化資料;資料湖是囤積狂:什麼原始垃圾都先倒進來再說。現代人索性兩個都要,合體叫 Lakehouse。
第四幕,全劇最髒的一幕。佔掉八成工時,無聊到想哭,但省了它,後面全劇終。
真實資料永遠像剛出車禍:重複、亂碼、格式各自表述、單位公斤公克混著填。這關就是戴上手套,一具一具把屍體抬乾淨。沒人愛做,但它決定生死。
資料裡一堆沒填的欄位,像考卷上的空格。直接刪?用平均硬補?還是叫模型幫你猜?補錯了,等於在答案卷上自己發明答案——然後模型還真的信了。
生日在 2077 年、年齡是負五歲、同一個人上一筆是男下一筆是女。這些邏輯上的鬼故事不揪出來,分析結果會荒腔走板到你不敢見人。
一筆離譜到爆的資料——是手滑多打幾個零,還是真有這尊大神?離群值可能是雜訊該刪,也可能正是你要抓的那條大魚(詐騙、異常)。刪還是留,手要穩,心要細。
第五幕,建模前的曖昧期。先用眼睛把資料上下打量一遍,別急著求婚。
不急著建模,先問資料一堆問題:你長怎樣?有啥規律?哪裡怪怪的?這頓飯吃得越透,後面越不會踩雷,還常常在閒聊中挖到意外的大八卦。
是漂亮對稱的鐘形,還是重心整個歪一邊?分佈的身材,決定你能用哪些方法、要不要先做健身(轉換)。建模前的體檢,別跳過。
找出誰跟誰有關,是必修。但千萬記住那句血淚名言:相關不等於因果。冰淇淋和溺水一起飆高,真兇不是冰淇淋,是夏天。搞錯這個,笑話就是你。
直方圖、散點圖、箱型圖,一畫下去,趨勢、異常、關係全現形。人眼看圖找 pattern 的速度,有時比演算法還快——而且老闆只看得懂圖。
第六幕,照妖鏡登場。把「這批資料看起來這樣」升級成「整個世界大概這樣」——順便拆穿運氣。
你不可能把全國人口都問一遍,只能舀一小勺樣本,推估整鍋。統計推論就是這套「以小見大」的嚴謹手藝,而且它夠誠實,會告訴你「我有幾成把握」。
新版轉換率高了 2%,你興奮到想開香檳——但那是真的變好,還是老天爺剛好賞你一次好運?假設檢定(p 值、信賴區間)就是幫你分辨「訊號」和「僥倖」的測謊機。
新舊版本哪個好?別在會議室吵——把用戶隨機分兩組,一組舊、一組新,數據見真章。這是網路公司驗證任何改動的黃金標準,讓決策不再靠老闆的直覺(和心情)。
相關很好交朋友,因果超難結婚。「如果當初不這麼做,結果會不一樣嗎?」因果推論用一堆硬核方法去逼近這個「平行時空的假設」——這是資料科學的聖杯,也是最容易翻車的地方。
第七幕,備料的藝術。這行有句真理:特徵工程決定天花板,模型只是努力去頂那個天花板。
把原始資料加工成有預測力的「特徵」——從時間戳算出星期幾、把地址變成經緯度。這一刀切得漂不漂亮,常常比你換哪把菜刀(演算法)還關鍵。
年齡幾十、收入幾萬,尺度差這麼多,模型會以為收入比較「重要」,只因為數字大。標準化把大家拉到同一條起跑線;Robust 版還特別抗那些離譜的怪咖。
模型只吃數字,可是「紅/綠/藍」怎麼餵?One-hot 拆成一堆 0/1,Label 直接編號。編錯了,模型會以為「藍(3)比紅(1)大」,然後認真地算起顏色的加減乘除。
詐騙偵測裡,99.9% 都是正常交易。模型只要無腦全猜「正常」,準確率就 99.9%——完美,也完全沒用。過採樣、欠採樣、調權重,都是為了逼牠正眼看那稀少卻要命的關鍵少數。
第八幕,也是最容易被忘記的一幕。模型跑出好結果不是結局,是牠人生的開始。
Jupyter 裡跑得再美,用戶碰不到,分數就是零。這關把模型推上線,讓牠去真實世界挨真實流量的打。能扛住,才算真的活著。
給人看的,做成儀表板,老闆一眼看懂、頻頻點頭;給系統用的,包成 API,讓別的程式隨時來敲門要答案。兩種形式,兩種客人。
用了個資就得守法,模型會不會偷偷歧視某群人?資料誰能碰?治理沒做好,技術再神,也可能一封律師函打回原形。這關,是給你自己買的保險。
世界一直變,去年準的模型,今年可能就老花了(用戶習慣變了、疫情來了)。得盯著輸入資料有沒有偷偷「漂走」,該重訓就重訓。養模型跟養寵物一樣,放生了牠就走鐘。