這項由法國發展研究所(IRD)ESPACE-DEV實驗室主導的研究,於2026年發表在ACM資料庫與數據管理領域會議論文集中,論文編號為arXiv:2604.25154,感興趣的讀者可通過該編號查閱完整原文,DOI為10.1145/nnnnnnn.nnnnnnn。
一、數據清洗的困境:廚師準備的食材太髒,再好的廚藝也難施展
假設你請了一位米其林大廚來家裡做飯,結果遞給他的食材里有爛掉的蔬菜、發霉的麵粉和混進去的沙子。再頂尖的廚師遇到這種情況,也很難做出美味佳肴。這個比喻,恰好描述了當今人工智慧領域一個真實而棘手的問題。
近年來,一類叫做"表格基礎模型"(Tabular Foundation Models,TFM)的AI系統悄然崛起,其中最具代表性的是TabPFN v2和TabICL。這類AI的神奇之處在於,你把一張數據表格丟給它,不需要任何額外訓練,它就能立刻開始做出預測——就好像一個天才廚師,光憑看一眼菜單就能做出完美菜餚。這種能力被稱為"零樣本學習",在數據量有限的場景下尤其珍貴,例如醫學研究、罕見疾病診斷等領域。
然而,這類AI有一個致命弱點:它在被創造出來的時候,學習的是經過精心整理的"乾淨"數據,就像廚師只練習處理新鮮食材一樣。一旦現實中的數據帶著各種"污漬"——有些格子裡的數據不見了(缺失值)、有些數字明顯不對勁(異常值)、有些行重複出現(重複數據)——AI的表現就會急劇下滑,而且它給出答案時的"自信程度"也會變得亂七八糟,該確定的時候不確定,不該確定的時候反而胡亂自信。
這個問題有個學術名稱叫"先驗分布錯位"(prior mismatch),用大白話說就是:AI學習時見到的數據長一種樣子,實際工作時收到的數據長另一種樣子,兩者之間存在落差,而這個落差直接影響AI的發揮水平。
更麻煩的是,數據清洗本身就是一件費時費力的苦差事。據統計,數據科學家60%到80%的工作時間都花在了清理數據上,而不是做真正有價值的分析。更糟糕的是,清洗數據沒有固定的最優順序——是先處理缺失值再處理異常值,還是反過來?用什麼方法填補空白的格子?閾值設置多少合適?這些決策互相影響,稍有不慎就會越清洗越亂。
正是在這個背景下,法國IRD研究所的研究團隊提出了一個大膽的想法:能不能用強化學習(一種讓AI通過反覆試錯來學習最優策略的方法),訓練一個"智能清洗代理",讓它自動學會如何最有效地清洗數據,使得後續的表格AI模型能夠發揮出最好的水平?這個系統被命名為L2C2(Learn to Clean 2.0),是"讓機器學會清洗"概念的第三代疊代版本。
二、獎勵機制的坑:如何告訴AI"這樣清洗是對的"
強化學習有一個核心機制,就是獎勵信號。通俗來說,就好像訓練一隻小狗:每次它做對了就給零食,做錯了就不給。AI系統也一樣,需要一個評分標準來告訴它"這次清洗做得好不好"。
聽上去簡單,但在數據清洗這個場景里,設計這個評分標準卻出奇地困難——而且錯誤的評分標準會把AI訓練成完全錯誤的行為。研究團隊發現這個設計難題本身就是一個值得深入研究的科學問題,於是專門設計了實驗來系統分析七種不同的評分方案,看看哪些有效、哪些會讓AI"學壞"。
第一種方案非常直覺:看數據有沒有缺失值,數據行有沒有被刪掉太多。這個思路看起來合理,但結果很荒唐——任何一次簡單的填充操作都能讓這個評分滿分,AI一下子就學會了"隨便填幾個均值就完事",而根本不管填得好不好。這就像給廚師的評分只看食材是否還在鍋里,而不管菜有沒有煮熟。
第二種方案是直接用隨機森林(一種傳統機器學習算法)的預測準確率來評分。這個方案有意義,但有一個暗坑:如果AI學會了把異常數據行全部刪掉,剩下的數據都是"乖巧"的,準確率會人為升高,但代價是大量有效數據白白丟失。就像廚師把所有有點瑕疵的食材都扔掉,做出來的菜當然好吃,但浪費驚人。
第三種方案試圖兼顧多個目標:準確率、數據保留率、數據質量綜合指標,同時還引入了一個懲罰項來防止數據分布發生太大扭曲。權重分配上,準確率占50%,保留率占30%,質量指標占20%,分布扭曲懲罰占10%。這個方案被稱為"多目標獎勵",實驗證明它是七種方案中表現最穩定的傳統方案,能夠選出真正有意義的清洗策略。
第四種方案加強了分布扭曲的懲罰力度,把這個懲罰項的係數提高了五倍。結果反而適得其反:在70%的數據集上,AI學會了"什麼都不做"——因為任何清洗操作都會或多或少改變數據的統計特徵,而懲罰太重,所以最保險的策略就是躺平。這揭示了一個深刻的矛盾:有效的清洗必然會改變數據,而一個過於懲罰"改變"的評分系統會扼殺所有有益的清洗行為。
第五種方案改變了評分的維度:不看絕對分數,只看每一步清洗操作帶來了多少增量改進。這在強化學習理論上很有吸引力,因為可以給每一步操作精確"歸功"。但在實際測試中,由於每一步的改進幅度都很微小(往往不到百分之一),這種方案的評分數值極低,AI幾乎無法從中學到有用資訊,就像給老師的評語只寫"比昨天好了一丁點",學生根本不知道該如何改進。
第六種方案完全專注於數據的統計保真度:用五種不同的數學工具衡量清洗後數據與原始數據在分布上的相似程度,包括Wasserstein距離、Jensen-Shannon散度、相關矩陣變化幅度等。這個方案的缺陷和第四種類似:什麼都不做就能獲得滿分,因為什麼都不做時數據和原始數據完全一樣。
這六種方案的分析為研究團隊指明了方向:一個好的評分方案必須同時關注"清洗後AI表現得怎麼樣"和"有沒有亂刪數據、有沒有扭曲數據分布"。更關鍵的是,這個方案必須用表格AI模型本身(TabPFN v2)來評分,而不是用別的代理模型。
三、核心創新:為表格AI量身定製的清洗評分體系
研究團隊在前述分析基礎上,提出了第七種評分方案——TFMAwareReward(TFM感知獎勵)。這是本研究最核心的技術貢獻之一。
這個評分方案包含四個部分,共同決定最終得分。第一部分是TabPFN v2實際的預測準確率,權重最大,占50%——因為清洗數據的終極目的是讓AI預測得更准。第二部分是數據行保留率,權重35%——這裡有個精妙的設計,保留率不是直接計入,而是取它的平方(數學上叫二次冪),這意味著刪掉20%的數據行,得到的懲罰是0.8的平方等於0.64,而不是直接的0.8,懲罰力度比線性計算放大了80%。第三部分是數據質量綜合指標,包括缺失值比例和重複數據比例,權重15%。第四部分是一個輕微的分布扭曲懲罰,權重只有5%——研究團隊刻意把這個權重設得很小,因為TabPFN v2在推理時已經自帶了數據標準化處理,不需要外部評分再重複懲罰適度的分布變化。
為什麼要對數據行保留率取平方?這裡有一個來自統計學的深刻理由。表格AI模型的預測不確定性(簡單說就是"AI不確定自己答對沒有")會隨著可用數據量的減少而急劇增加,其增速大約與數據量的平方根成反比。換句話說,數據越少,每減少一行數據造成的傷害越大——當數據只有100行時,刪掉10行比數據有10000行時刪掉1000行的傷害要大得多。取平方恰好能捕捉到這種非線性關係,讓評分體系對"亂刪數據"更加敏感。
有了這個評分體系,清洗AI就有了明確的指引:它知道準確率最重要,數據行要儘量保留(而且要非線性地保留),順便保持數據整潔,但不需要為了追求統計完美而什麼都不做。
四、L2C2系統的完整設計:從"感知環境"到"決定行動"
L2C2是一個完整的自動化數據清洗框架,其工作原理可以類比於一位專業的整理收納師:她首先觀察房間的狀況,然後決定先整理哪裡、用什麼工具,一步步把雜亂的空間整理成井然有序的樣子。
系統首先需要"觀察"數據的狀態。每次做完一步清洗操作之後,系統會生成一個9維度的狀態向量,就像給數據拍一張包含9個維度資訊的"健康體檢報告"。這9個維度中,前6個描述數據質量:當前缺失值比例、數據分布與原始分布的偏差程度(用Wasserstein距離衡量)、數據的偏斜程度(是否明顯向一側傾斜)、數據的尖峰程度(是否有過多極端值)、類別比例的平衡程度(各類別數據數量是否懸殊),以及當前還剩多少比例的數據行。後3個維度則記錄"歷史操作":到目前為止有沒有用過填充類操作、有沒有用過異常值處理操作、有沒有用過數據縮放操作,各用一個0或1的標記來記錄。
系統可以執行三大類清洗操作。第一類是填充缺失值,可以選擇用平均值填充、用中位數填充,或者用KNN算法(根據相鄰數據點的情況來推測缺失值)填充,而且KNN的"鄰居數量"參數可以在1到20之間自由調整。第二類是處理異常值,可以選擇基於IQR方法(四分位距法)或Z分數方法,而且判斷"多異常才算異常"的閾值也可以精細調整。第三類是數據縮放,可以選擇歸一化(把數值壓縮到0到1之間)或標準化(讓數據以0為中心對稱分布),還有分位數變換等選項。
在系統結構上,L2C2使用了三種深度強化學習算法(PPO、DQN、A2C)中的任意一種來訓練策略,實驗中默認使用PPO算法,神經網路結構是兩層各256個節點的全連接網路。每個"訓練回合"最多執行6步清洗操作——這個步數足夠讓三類操作各使用一次,同時避免過度清洗。為了防止AI無限重複同一類操作(比如連續三次填充缺失值),系統設置了"家族守衛機制":每類操作在一個回合內只能使用一次,重複使用會受到懲罰。
五、六組實驗的發現:一項項拆解"AI清洗師"的能力邊界
研究團隊在10個來自OpenML基準資料庫的公開數據集上進行了六組精心設計的實驗。這10個數據集覆蓋了從155行到48842行的寬廣規模範圍,包括肝炎病例、心臟病數據、血型捐獻、糖尿病、信貸記錄等真實世界場景,有的數據集本身就有真實的缺失值,其餘的則人為注入了缺失值、異常值或重複數據來模擬真實問題。
第一組實驗系統比較了七種評分方案。研究發現,在對112種不同清洗流程進行全面評測後,三種評分方案(第一種完整性獎勵、第六種分布保真獎勵的兩個變體)徹底"崩潰",在所有10個數據集上都給出滿分,完全失去了區分好壞的能力,就像一個總是給學生打100分的老師,無法幫助學生進步。第四種漂移懲罰方案則走向了另一個極端,在7個數據集上引導AI選擇"什麼都不做"。第五種增量獎勵方案的評分數值極低,基本無效。只有第二種(單純看隨機森林準確率)和第三種(多目標)產生了有意義的區分,但相比之下,新提出的第七種TFMAwareReward方案在統計圖表中占據了最優位置——同時擁有最高的平均獎勵分數和最高的TabPFN v2預測準確率,兩項指標都是最優。
第二組實驗比較了"為表格AI優化的清洗"與"為傳統隨機森林優化的清洗"之間的差異。當兩種評分體系指導清洗AI在同樣的候選流程中選擇最優方案時,它們在10個數據集中有4個做出了不同的選擇。這4個不同的選擇恰好都與填充方法的選擇有關:在心臟病數據和聲學特徵數據集上,為表格AI優化的評分選擇了中位數填充,而為隨機森林優化的評分選擇了KNN填充;在糖尿病數據集上情況相反,為表格AI優化的選擇了均值填充,為隨機森林優化的選擇了KNN填充;在血型數據集上,兩者的選擇又互換了方向。
這種差異背後有一個統一的邏輯:TabPFN v2在推理時會自動對數據進行標準化處理,因此它依賴的是數據的全局統計特徵(均值、中位數),而KNN填充會引入局部的非線性關係,這與TabPFN v2的內部假設不一定匹配。在4個出現分歧的數據集上,為表格AI優化的方案全部勝出,而在其餘6個數據集上兩者產生了相同的選擇,結果自然相同。綜合10個數據集,TFMAwareReward的平均準確率是0.8513,高於隨機森林導向方案的0.8428,差距約為0.0085,統計上的單側Wilcoxon檢驗p值為0.063,略高於傳統的0.05門檻,但方向一致且沒有一次逆轉。
第三組實驗專門研究數據清洗對AI"置信度準確性"的影響,專業上稱為期望校準誤差(ECE,可以理解為"AI說自己80%確定時實際有多少次是對的"這類指標的綜合評分)。實驗在五個有代表性的數據集上,對四種錯誤類型分別測試:完全隨機缺失15%、按條件缺失15%、注入10%異常值、注入10%重複行。結果顯示,相比完全不清洗的原始數據,TFMAwareReward方案在所有四種錯誤類型下都改善了置信度準確性,其中在按條件缺失的情況下改善最大。與標準預處理相比,TFMAwareReward在按條件缺失、異常值和重複數據這三種情況下都能進一步改善校準,但在隨機缺失的情況下略有不及——因為簡單的均值填充對純隨機缺失已經足夠有效,沒有太多改進空間。特別值得關注的是,在重複數據這種錯誤類型下,為表格AI優化的方案比為隨機森林優化的方案在校準上更有優勢,原因在於去重操作消除了人為重複的行,防止AI因為"見了太多相同例子而過度自信"。
第四組實驗系統考察了隨機缺失比例從0%到30%遞增時,清洗效果如何變化。實驗直覺上預期"缺失越嚴重,清洗收益越大",但實際結果顛覆了這個預期。在0%缺失(完全乾淨數據)時,為表格AI優化的方案比標準預處理平均還高出0.008個百分點,因為數據集本身自帶的原生缺失值仍然存在。隨著人為注入的缺失比例增加,優勢並不單調遞增,而是在15%時達到峰值(平均高出0.026),然後在20%時下降到接近零,在30%時又部分回升至0.020。統計檢驗顯示,缺失率與清洗收益之間沒有顯著的單調關係(Spearman相關係數在-0.28到+0.52之間,p值均大於0.20)。這說明清洗的收益取決於錯誤的"結構特徵"而非單純的嚴重程度,不同數據集在不同缺失率下有著不同的最優清洗策略。
第五組實驗比較了"給清洗操作加上可調參數"與"固定參數"之間的效果差異。在離散參數版本中,KNN填充固定用5個鄰居,異常值檢測使用固定閾值;而參數化版本允許AI自由選擇KNN鄰居數(從3到10的多個選項)和異常值閾值(從1.0到5.0的精細網格)。實驗結果顯示,在10個數據集中有9個受益於參數化操作(另一個打平),平均改善幅度為0.0007,最大改善出現在血型捐獻數據集上(改善0.0029),這個數據集具有較嚴重的類別不平衡,參數的精細調整能有效應對這種特殊結構。最優KNN鄰居數在不同數據集上差異顯著:大多數數據集選3個鄰居,血型數據選7個,西洋棋數據和銀行營銷數據選10個。這一結果統計顯著(Wilcoxon檢驗p=0.004),說明"一刀切"的固定參數明顯不如允許AI自行摸索最優參數。
第六組實驗探索了"知識遷移"的可能性:能否在一個數據集上訓練出的清洗策略,拿來直接用於另一個數據集?這就好像一位整理收納師在整理了第一個客戶的家之後,再去第二個客戶家時是不是能更快上手?實驗中,研究團隊先在D3(電離層雷達數據,351行)上訓練了一個PPO策略,然後把這個預訓練策略遷移到三個完全不同的數據集上進行微調,並與從頭訓練的策略對比。結果非常令人鼓舞:在聲學特徵數據集(5404行)、美國人口收入數據集(48842行)和銀行營銷數據集(45211行)上,預訓練策略在僅僅經過2000步微調後,就超過了從頭訓練策略跑滿5000步的最終性能——分別超出7.0%、17.2%和11.5%。如果微調也跑滿5000步,差距進一步擴大到7.2%、28.8%和19.8%。特別引人注目的是美國收入數據集上28.8%的提升:這個數據集有將近5萬行數據,包含真實的自然缺失值和分類特徵,與只有351行純數值特徵的電離層數據看起來差異極大,但預訓練知識依然有效地遷移過來了,說明清洗策略中存在某種"通用的先驗知識"——傾向於保留數據行、避免扭曲數據分布的這種傾向是普遍有效的,而不只是針對某個特定數據集的特化知識。
六、系統的局限與未來方向
任何研究都有其邊界條件,這項工作也不例外。研究團隊坦誠地列舉了L2C2當前的幾項限制。第一,所有實驗使用的是人為注入錯誤的數據,而真實世界中數據錯誤的形式更加複雜多樣,這個差距還需要在未來研究中通過真實錯誤數據集來彌合。第二,框架目前只針對分類任務,對於預測數值(回歸任務)的場景,校準誤差的衡量標準完全不同,需要重新設計評分體系。第三,系統的計算開銷主要來自每次評分時調用TabPFN v2的推理,大約每次需要0.3秒,這使得實時在線清洗目前不現實。第四,為了控制計算量,兩個最大的數據集(各有約4萬到5萬行)被截取到1萬行進行訓練,這可能引入採樣偏差。第五,獎勵函數中各權重參數是研究團隊依據理論分析預先設定的,如果TabPFN v2未來版本更新,這些參數需要重新校準。
在小數據集上,系統也暴露了穩定性問題:當數據集只有155行或270行時,訓練過程中可能出現數值計算錯誤,根本原因是在極小數據集上激進的異常值刪除有時會把所有數據都刪光,導致AI無法運行。研究團隊通過兩個保護機制緩解了這個問題:每一步的獎勵值被截斷到-1到1之間,同時設置了最少保留10行數據的硬性下限。
研究團隊為未來工作規劃了幾個具體方向:將TFMAwareReward的設計適配到TabICL等其他表格AI模型;在CleanML這個專門用來評估清洗效果的基準數據集上進行測試,以便與其他非強化學習的清洗方法直接比較;在觀察狀態向量中加入更多數據畫像信號(如重複比例、特徵類別數量),讓AI在決策前就能預判哪些操作有意義;以及探索多智能體協作框架,讓專門處理缺失值、異常值和數據標準化的子策略由一個總協調策略來統一調度。
說到底,這項研究做的事情可以用一句話概括:它發現了一個被忽視的問題,建立了一個解決問題的系統,系統地驗證了哪些做法有效、哪些做法看起來有效實則無效,並且在有限的條件下證明了"清洗知識可以跨數據集遷移"這個令人鼓舞的結論。
獎勵設計的困難性是這項工作最具科學價值的發現之一:七種方案中有三種徹底失效,一種接近失效,這提醒所有想用強化學習解決現實問題的研究者,選錯了獎勵信號,訓練得越久,系統學到的壞習慣就越根深蒂固。相比之下,一個精心設計、融合多目標權衡的獎勵函數,即便改進幅度看起來不驚人(準確率提升0.0084),但方向始終正確、從不失手,這種穩定性在需要高可靠性的應用場景中往往比偶爾的大幅提升更有價值。
對於普通讀者而言,這項研究最直接的含義是:當你使用任何基於表格AI的工具時(無論是醫療診斷輔助、貸款風險評估還是銷售預測),你的數據質量直接決定了AI的可信度,而未來的AI輔助工具有望自動幫你清理數據,讓"髒數據餵給AI"這個老大難問題得到更優雅的解決。有興趣深入了解技術細節的讀者可以通過arXiv編號2604.25154查閱完整論文。
Q&A
Q1:TabPFN v2 為什麼對髒數據特別敏感?
A:TabPFN v2 在訓練階段學習的是經過精心整理的"乾淨"數據的統計特徵,當實際輸入的數據帶有缺失值、異常值或重複行時,數據分布與模型的內部假設產生落差(先驗分布錯位),導致預測準確率下降、置信度評估失准。此外,TabPFN v2 自帶的內部標準化流程會放大上游數據質量問題的影響,使其比傳統機器學習模型對數據質量更加敏感。
Q2:L2C2 的獎勵函數設計為什麼那麼重要?
A:強化學習系統完全依照獎勵信號來調整行為,獎勵設計錯誤會讓系統學到無用甚至有害的策略。L2C2 的實驗表明,七種候選方案中有三種讓清洗 AI 學會了"隨便填個均值"或"什麼都不做"就能拿滿分的偷懶策略,完全偏離了目標。只有同時考慮下游 AI 的準確率、數據保留量和分布穩定性的綜合方案,才能真正引導 AI 找到有價值的清洗流程。
Q3:L2C2 清洗框架支持哪些數據錯誤類型?
A:L2C2 目前針對四類常見錯誤設計了對應的清洗操作:通過填充策略(均值、中位數、KNN)處理缺失值,通過 IQR 或 Z 分數方法處理異常值,通過去重邏輯處理重複行,以及通過多種縮放方法修正數據分布偏差。框架在完全隨機缺失、按條件缺失、異常值注入和重複行注入四種場景下均進行了測試,但目前尚未針對拼寫錯誤、格式不一致等文本類錯誤提供支持。






