優(yōu)化模型性能:產(chǎn)品經(jīng)理需要了解的數(shù)據(jù)劃分與評(píng)估策略
如何做好模型的性能評(píng)估?我們不妨從兩個(gè)關(guān)鍵階段來(lái)切入探討。這篇文章里,作者就做了對(duì)應(yīng)的解讀,并闡述了在訓(xùn)練過(guò)程中可能遇到的數(shù)據(jù)泄露問(wèn)題和相關(guān)解決方案,一起來(lái)看一下吧。
01
在機(jī)器學(xué)習(xí)的世界里,模型的性能評(píng)估是至關(guān)重要的。本文將深入探討評(píng)估模型性能的兩個(gè)關(guān)鍵階段,并揭示在訓(xùn)練過(guò)程中可能遇到的數(shù)據(jù)泄露問(wèn)題及其解決方案。
1. 模型開(kāi)發(fā)階段和調(diào)整階段的性能評(píng)估
在這個(gè)階段,可能會(huì)嘗試不同的機(jī)器學(xué)習(xí)算法,或者對(duì)選定的算法進(jìn)行超參數(shù)調(diào)整(即調(diào)整模型的“表盤(pán)”,這里的表盤(pán)是一個(gè)比喻,指的是模型的內(nèi)部參數(shù),如學(xué)習(xí)率、樹(shù)的深度等)。在每次嘗試或調(diào)整后,都需要評(píng)估模型性能,以便了解這些變化是否提高了模型的預(yù)測(cè)能力。
這通常在驗(yàn)證集上進(jìn)行評(píng)估來(lái)實(shí)現(xiàn)。驗(yàn)證集是從原始訓(xùn)練數(shù)據(jù)中分離出來(lái)的,用于在模型訓(xùn)練過(guò)程中評(píng)估模型性能的數(shù)據(jù)集。這樣做的目的是確保在優(yōu)化模型時(shí),實(shí)際上是超者提高性能方向前進(jìn),而不是讓模型過(guò)擬合或性能下降。
2. 模型最終確定后的性能評(píng)估
一旦確定了模型的參數(shù)和結(jié)構(gòu)(即模型“最終確定”),需要在完全獨(dú)立的測(cè)試集上評(píng)估模型的性能。測(cè)試集包含了模型在訓(xùn)練過(guò)程中從為見(jiàn)過(guò)的數(shù)據(jù),有助于評(píng)估模型在實(shí)際應(yīng)用中的泛化能力。這個(gè)階段的性能評(píng)估是為了驗(yàn)證模型在面對(duì)新數(shù)據(jù)時(shí)的表現(xiàn), 確保模型不僅在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,也能在實(shí)際應(yīng)用中準(zhǔn)確預(yù)測(cè)。
3. 模型的數(shù)據(jù)劃分
在模型開(kāi)發(fā)和調(diào)整階段,模型進(jìn)行訓(xùn)練之前,就需要從測(cè)試集中分離出一份驗(yàn)證集,這樣做的目標(biāo)就是為了確保驗(yàn)證集數(shù)據(jù)在整個(gè)模型訓(xùn)練過(guò)程中不會(huì)被模型接觸到,從而保證驗(yàn)證集能夠提供一個(gè)獨(dú)立的評(píng)估環(huán)境。即使在模型進(jìn)行參數(shù)或結(jié)構(gòu)調(diào)整,優(yōu)化模型性能的多輪迭代中,使用的也是同一份驗(yàn)證集。
但是在交叉驗(yàn)證中,則不成立。在交叉驗(yàn)證中,訓(xùn)練集被劃分成若干分相同的數(shù)據(jù)量的數(shù)據(jù)集,每個(gè)部分輪流作為驗(yàn)證集,其他作為測(cè)試集。
02
上文也提了在模型優(yōu)化多輪迭代中,使用同一份驗(yàn)證集的問(wèn)題。這在傳統(tǒng)的機(jī)器學(xué)習(xí)中,會(huì)存在一個(gè)潛在問(wèn)題,即在多輪迭代優(yōu)化中使用同一份驗(yàn)證集可能會(huì)導(dǎo)致模型“記住”驗(yàn)證集的數(shù)據(jù),這被稱(chēng)為信息泄露(Information Leakage)。
為了避免這種情況,通常會(huì)在每次迭代中使用不同的驗(yàn)證集,或者采用交叉驗(yàn)證的方式(小數(shù)量集數(shù)據(jù)訓(xùn)練模型時(shí)選擇交叉驗(yàn)證更優(yōu))。
下面說(shuō)說(shuō)數(shù)據(jù)集的一般步驟:
- 數(shù)據(jù)預(yù)處理:在任何模型訓(xùn)練之前,首先對(duì)整個(gè)數(shù)據(jù)集進(jìn)行清洗、特征工程等預(yù)處理步驟。
- 劃分?jǐn)?shù)據(jù)集:將預(yù)處理后的數(shù)據(jù)集按照一定比例(如常見(jiàn)的60%訓(xùn)練集,20%驗(yàn)證集,20%測(cè)試集)劃分訓(xùn)練集。這個(gè)過(guò)程是在模型訓(xùn)練之前完成的,以確保數(shù)據(jù)集的隨機(jī)性和獨(dú)立性。
- 訓(xùn)練模型:使用訓(xùn)練集數(shù)據(jù)來(lái)訓(xùn)練模型,這個(gè)階段,模型只會(huì)接觸到訓(xùn)練集中的數(shù)據(jù)。
- 驗(yàn)證模型:在模型訓(xùn)練完成后,使用驗(yàn)證集數(shù)據(jù)來(lái)評(píng)估模型的性能。這個(gè)過(guò)程中,模型會(huì)嘗試對(duì)驗(yàn)證集中的數(shù)據(jù)進(jìn)行預(yù)測(cè),但不會(huì)影響模型的訓(xùn)練過(guò)程 。
- 調(diào)整模型:根據(jù)驗(yàn)證集上的表現(xiàn),可能需要調(diào)整模型的超參數(shù)或結(jié)構(gòu)。這個(gè)過(guò)程可能會(huì)多次進(jìn)行,每次都使用驗(yàn)證集來(lái)評(píng)估調(diào)整后模型的性能。
- 最終評(píng)估:在確定了最佳模型后,使用測(cè)試集來(lái)對(duì)模型進(jìn)行最終評(píng)估。測(cè)試集數(shù)據(jù)在整個(gè)過(guò)程中都不會(huì)被模型接觸到,因此它提供了一個(gè)最接近實(shí)際應(yīng)用場(chǎng)景的評(píng)估。
而在訓(xùn)練模型階段會(huì)產(chǎn)生一個(gè)比較嚴(yán)重的問(wèn)題-數(shù)據(jù)泄露(Data Leakage)。它指的是在訓(xùn)練模型的過(guò)程中,模型意外接觸到了本應(yīng)該在測(cè)試階段才出現(xiàn)的數(shù)據(jù)或信息。而這種情況的出現(xiàn)一般發(fā)生在數(shù)據(jù)準(zhǔn)備和預(yù)處理階段,訓(xùn)練集和測(cè)試集數(shù)據(jù)之間的界限被破壞時(shí)。
數(shù)據(jù)泄露的具體表現(xiàn)可能包括:
- 特征泄露:訓(xùn)練模型時(shí)使用了測(cè)試集中的特征,或者在特征工程中,使用了未來(lái)信息(比如,時(shí)間序列數(shù)據(jù)中的未來(lái)的值),導(dǎo)致模型在訓(xùn)練集上的表現(xiàn)被高估,而在實(shí)際應(yīng)用中性能下降。
- 統(tǒng)計(jì)信息泄露:在訓(xùn)練過(guò)程中使用了測(cè)試集的統(tǒng)計(jì)信息(如均值、標(biāo)準(zhǔn)差等)來(lái)調(diào)整模型參數(shù),這使得模型在測(cè)試集上的表現(xiàn)被高估 。
- 模型參數(shù)泄露:在模型選擇或超參數(shù)調(diào)整過(guò)程中,使用了測(cè)試集的信息,導(dǎo)致模型對(duì)測(cè)試集的過(guò)擬合。
以下補(bǔ)充說(shuō)明一些特征泄露示列:
1)時(shí)間戳泄露
假設(shè)你有一個(gè)包含過(guò)去幾年房產(chǎn)交易數(shù)據(jù)的數(shù)據(jù)集,其中每個(gè)交易記錄都有一個(gè)時(shí)間戳(日期)。如果你在訓(xùn)練模型時(shí),不小心將這些時(shí)間戳作為特征輸入,并且這些時(shí)間戳包含了未來(lái)房?jī)r(jià)變動(dòng)的信息,那么模型可能會(huì)學(xué)習(xí)到這些未來(lái)信息,從而在訓(xùn)練集上表現(xiàn)得很好。
這并不意味著模型真正理解了房?jī)r(jià)變動(dòng)的內(nèi)在規(guī)律,因?yàn)樗蕾?lài)的是未來(lái)信息,而不是基于當(dāng)前和過(guò)去的數(shù)據(jù)來(lái)預(yù)測(cè)未來(lái)。
2)未來(lái)數(shù)據(jù)泄露
如果是預(yù)測(cè)明天的天氣,在訓(xùn)練模型時(shí),你不小心將后天的天氣預(yù)報(bào)作為特征輸入。模型可能會(huì)學(xué)會(huì)基于后天的天氣來(lái)預(yù)測(cè)明天的天氣,這顯然是不合理的,因?yàn)槟P驮趯?shí)際應(yīng)用中無(wú)法預(yù)知未來(lái)幾天的天氣。
3)數(shù)據(jù)清洗錯(cuò)誤
在處理數(shù)據(jù)時(shí),可能會(huì)發(fā)現(xiàn)某些異常值或錯(cuò)誤數(shù)據(jù),并決定將它們從數(shù)據(jù)集中移除。然而,如果這些異常值在測(cè)試集中仍然存在,而模型在訓(xùn)練時(shí)已經(jīng)“學(xué)會(huì)”了忽略這些值,那么在測(cè)試集上模型可能會(huì)表現(xiàn)不佳,因?yàn)樗鼪](méi)有學(xué)會(huì)如何處理這些真實(shí)的異常情況 。
4)第三方信息
假設(shè)正在構(gòu)建一個(gè)預(yù)測(cè)用戶(hù)是否會(huì)購(gòu)買(mǎi)某個(gè)產(chǎn)品的模型。在訓(xùn)練過(guò)程中,不小心將用戶(hù)在社交媒體上的活動(dòng)數(shù)據(jù)(如點(diǎn)贊、分享等)作為特征。這些數(shù)據(jù)可能包含了用戶(hù)購(gòu)買(mǎi)意愿的線(xiàn)索,但這些信息在用戶(hù)實(shí)際購(gòu)買(mǎi)行為發(fā)生之前是不可用的。這樣,模型在訓(xùn)練集上的表現(xiàn)可能會(huì)很好,但在實(shí)際應(yīng)用中,由于缺乏這些社交媒體數(shù)據(jù),模型的預(yù)測(cè)能力會(huì)下降。
總結(jié)一下,為了解決這些問(wèn)題,我們需要確保數(shù)據(jù)集的正確劃分,并且在訓(xùn)練和驗(yàn)證過(guò)程中嚴(yán)格遵守這些劃分。此外,交叉驗(yàn)證和定期更換驗(yàn)證集也是預(yù)防數(shù)據(jù)泄露的有效策略。
本文由 @陶培林 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!