數(shù)據(jù)挖掘不是先上模型
數(shù)據(jù)挖掘不是先上模型
準(zhǔn)備好數(shù)據(jù)、指標(biāo)和驗(yàn)證口徑,很多項(xiàng)目才剛剛跨過第一道門檻。真正卡住業(yè)務(wù)的,往往不是算法復(fù)雜,而是對數(shù)據(jù)挖掘流程步驟參數(shù)要求理解得太粗:想當(dāng)然地清洗數(shù)據(jù)、隨手分組、模型一跑就上線,結(jié)果結(jié)論看似漂亮,落地卻經(jīng)不起追問。對企業(yè)來說,數(shù)據(jù)挖掘更像一條從問題定義到效果驗(yàn)證的工程鏈路,每一步都決定后面的可用性。
問題先說清
數(shù)據(jù)挖掘流程的起點(diǎn)不是建模,而是把業(yè)務(wù)問題翻譯成可計(jì)算的目標(biāo)。是要做分類、回歸、聚類,還是關(guān)聯(lián)規(guī)則、異常識別,不同目標(biāo)對應(yīng)的數(shù)據(jù)準(zhǔn)備和評價方式完全不同。很多項(xiàng)目失敗,不是因?yàn)樗惴ú粔驈?qiáng),而是目標(biāo)定義模糊:既想預(yù)測銷量,又想解釋原因,還想直接給出策略建議,最后數(shù)據(jù)口徑、標(biāo)簽時間窗、樣本范圍都混在一起。
這一階段最重要的參數(shù)要求,不是技術(shù)參數(shù),而是業(yè)務(wù)參數(shù)。比如目標(biāo)事件的定義要統(tǒng)一,正負(fù)樣本的邊界要明確,觀測窗口和預(yù)測窗口不能互相污染,特征可用時間必須早于標(biāo)簽生成時間。只要這些基礎(chǔ)約束沒有定下來,后面的挖掘結(jié)果越精細(xì),偏差反而越大。
數(shù)據(jù)先過篩
進(jìn)入數(shù)據(jù)準(zhǔn)備階段,重點(diǎn)就從“想做什么”轉(zhuǎn)向“能不能做”。原始數(shù)據(jù)通常存在缺失、重復(fù)、口徑不一致、異常值和時間錯位等問題,清洗并不是把臟數(shù)據(jù)簡單刪除,而是判斷這些問題會不會改變分析結(jié)論。比如缺失值是隨機(jī)缺失還是系統(tǒng)性缺失,重復(fù)記錄是業(yè)務(wù)重復(fù)還是采集重復(fù),異常值是錯誤數(shù)據(jù)還是真實(shí)極端行為,這些判斷會直接影響后續(xù)建模。
參數(shù)要求在這一階段體現(xiàn)得很細(xì)。缺失值處理要看缺失比例、字段重要性和分布形態(tài);離群值處理要看是否保留尾部信息;標(biāo)準(zhǔn)化、歸一化、分箱、編碼方式,也都要根據(jù)算法類型選擇。樹模型對特征尺度不太敏感,距離類方法、線性模型則更依賴統(tǒng)一尺度??此剖菙?shù)據(jù)整理,實(shí)則是在為算法設(shè)置輸入邊界。
特征決定上限
特征工程往往決定了數(shù)據(jù)挖掘項(xiàng)目的上限。原始字段只能描述表面事實(shí),真正能區(qū)分樣本的,通常是經(jīng)過組合、統(tǒng)計(jì)、時間衰減和業(yè)務(wù)邏輯加工后的特征。比如同樣是交易數(shù)據(jù),單次金額不如近段時間的頻次、波動、集中度和變化趨勢更能反映行為特征。很多時候,模型效果提升最大的,不是換算法,而是把“時間維度、交互關(guān)系、周期規(guī)律”做對。
這里的參數(shù)要求更偏向結(jié)構(gòu)設(shè)計(jì)。特征窗口不能太短,否則看不到穩(wěn)定趨勢;也不能太長,否則會把陳舊信息混進(jìn)來。類別特征的編碼方式要與樣本規(guī)模匹配,小樣本高基數(shù)字段如果處理不當(dāng),很容易引入噪聲。高相關(guān)特征不一定都要刪,但要控制冗余,避免模型在相似信息上重復(fù)學(xué)習(xí)。對于時序場景,還要特別注意特征生成時點(diǎn),避免把未來信息帶入訓(xùn)練集。
模型要會調(diào)
到了建模階段,很多人會把注意力全部放在“選哪個算法”上,但更關(guān)鍵的是參數(shù)要求和驗(yàn)證方式是否匹配。超參數(shù)不是越多越好,復(fù)雜模型并不天然更優(yōu)。樹的深度、葉子節(jié)點(diǎn)數(shù)量、學(xué)習(xí)率、正則強(qiáng)度、采樣比例、迭代輪數(shù),這些參數(shù)本質(zhì)上是在平衡擬合能力和泛化能力。參數(shù)過松,模型容易記住噪聲;參數(shù)過緊,又會丟失信號。
更容易被忽略的是驗(yàn)證策略。隨機(jī)切分適合部分靜態(tài)數(shù)據(jù),時序問題卻更適合按時間滾動驗(yàn)證;樣本不平衡時,單看準(zhǔn)確率沒有意義,應(yīng)該結(jié)合召回率、精確率、F1、AUC或業(yè)務(wù)損失函數(shù)一起看。數(shù)據(jù)挖掘流程步驟參數(shù)要求之所以復(fù)雜,正是因?yàn)槊總€參數(shù)背后都對應(yīng)一個業(yè)務(wù)風(fēng)險(xiǎn):誤報(bào)太多、漏報(bào)太多、穩(wěn)定性差,都會讓模型無法進(jìn)入實(shí)際流程。
結(jié)果要能落地
真正完整的流程不是模型輸出結(jié)束,而是結(jié)果解釋、部署驗(yàn)證和持續(xù)監(jiān)控。業(yè)務(wù)側(cè)關(guān)心的不是“模型分?jǐn)?shù)多高”,而是結(jié)論是否可解釋、可復(fù)用、可監(jiān)測。一個能落地的數(shù)據(jù)挖掘項(xiàng)目,往往會把結(jié)果映射成規(guī)則、評分、標(biāo)簽或策略分層,讓使用者知道為什么命中、命中后該怎么處理。
最后還要看上線后的穩(wěn)定性。數(shù)據(jù)分布會變化,字段含義會漂移,采集鏈路也可能調(diào)整,所以參數(shù)要求并不是一次性設(shè)置完就結(jié)束。特征重要性、樣本覆蓋率、預(yù)測偏移、閾值變化都需要持續(xù)觀察。把流程、步驟、參數(shù)都納入統(tǒng)一管理,數(shù)據(jù)挖掘才不只是一次分析,而是一個能持續(xù)產(chǎn)出價值的業(yè)務(wù)能力。