時(shí)間序列機(jī)器學(xué)習(xí)數(shù)據(jù)集的非常規(guī)拆分技術(shù)
確保機(jī)器學(xué)習(xí)模型在未知環(huán)境中泛化的一種嘗試是拆分?jǐn)?shù)據(jù)。這可以通過多種方式實(shí)現(xiàn),從3-way(訓(xùn)練、測試、評(píng)估)拆分到交叉驗(yàn)證的k拆分。其基本原理是,通過在數(shù)據(jù)子集上訓(xùn)練機(jī)器學(xué)習(xí)模型,并在未知數(shù)據(jù)上進(jìn)行評(píng)估,可以更好地推理模型在訓(xùn)練中是否存在欠擬合或過擬合。
對(duì)于大多數(shù)工作來說,簡單的3-way就足夠了。在現(xiàn)實(shí)生產(chǎn)中,拆分方式往往需要更復(fù)雜的方法來確保泛化問題。這些拆分更加復(fù)雜,因?yàn)樗鼈冊醋詫?shí)際數(shù)據(jù),而不是普通拆分方法所基于的數(shù)據(jù)結(jié)構(gòu)。這篇文章試圖講解一些在機(jī)器學(xué)習(xí)開發(fā)中拆分?jǐn)?shù)據(jù)的非常規(guī)方法,以及它們背后的原因。
讓我們從數(shù)據(jù)集開始
為了簡單起見,讓我們使用以表格格式來表示簡單多變量時(shí)間序列數(shù)據(jù)集。該數(shù)據(jù)由3個(gè)數(shù)字特征、1個(gè)分類特征和1個(gè)時(shí)間戳特征組成。下面是可視化的:
這種類型的數(shù)據(jù)集在機(jī)器學(xué)習(xí)的許多用例和行業(yè)中都很常見。一個(gè)具體的例子是從工廠車間里面多個(gè)傳感器傳輸?shù)臅r(shí)間流數(shù)據(jù)。分類變量將是機(jī)器的ID,數(shù)字特征將是傳感器正在記錄的信息(例如,壓力、溫度等),時(shí)間戳將是數(shù)據(jù)傳輸和記錄在數(shù)據(jù)庫中的時(shí)間。
拆分
假設(shè)您從數(shù)據(jù)工程部門以csv文件的形式收到了這個(gè)數(shù)據(jù)集,并承擔(dān)編寫分類或回歸模型的任務(wù)。在這種情況下,標(biāo)簽可以是任何特征或額外的列。要做的第一件事是將數(shù)據(jù)拆分成有意義的子集。
為方便起見,您可以簡單拆分成訓(xùn)練集和測試集。馬上問題來了,數(shù)據(jù)的簡單拆分在這里是行不通的:數(shù)據(jù)是由多個(gè)按時(shí)間索引的傳感器數(shù)據(jù)流組成的。那么,如何對(duì)數(shù)據(jù)進(jìn)行拆分,從而保持順序,并使后續(xù)機(jī)器學(xué)習(xí)模型具有很好的泛化性呢?
數(shù)據(jù)的另一種觀點(diǎn)
我們可以做的最直接的轉(zhuǎn)換是表示每個(gè)分類類的數(shù)據(jù)(在我們的運(yùn)行示例中,可視化每臺(tái)機(jī)器的數(shù)據(jù))。這將產(chǎn)生以下結(jié)果:
水平拆分
分組使拆分的問題變得簡單了一些,并且很大程度上取決于你的假設(shè)。您可能會(huì)問:針對(duì)一個(gè)組訓(xùn)練的機(jī)器學(xué)習(xí)模型如何泛化到其他組,也就是說,如果在class_1、class_2和class_3時(shí)間流上進(jìn)行訓(xùn)練,該模型在class_4和class_5時(shí)間流上的會(huì)如何呢?以下是這種拆分的可視化圖:
上面的這種拆分方式,我稱之為水平拆分。在大多數(shù)機(jī)器學(xué)習(xí)庫中,通過簡單地按分類特征進(jìn)行分組并沿著分類進(jìn)行分區(qū),可以輕松實(shí)現(xiàn)這種拆分。使用這種拆分進(jìn)行訓(xùn)練,該模型就已經(jīng)收集到了在未知分組中泛化的信息。
值得注意的是,拆分并沒有把時(shí)間作為拆分本身的基礎(chǔ)。不過,可以假設(shè)您還將按每個(gè)時(shí)間流的時(shí)間排序來拆分,以在數(shù)據(jù)中維護(hù)這種關(guān)系。這就引出了下一個(gè)拆分方式。
垂直拆分
但如果你想跨越時(shí)間本身呢?對(duì)于大多數(shù)時(shí)間序列建模,拆分?jǐn)?shù)據(jù)的常用方法是past和future。也就是說,將訓(xùn)練集的歷史數(shù)據(jù)與評(píng)估集的數(shù)據(jù)相比較。在這種情況下的假設(shè)是:機(jī)器學(xué)習(xí)模型如何訓(xùn)練每組的歷史數(shù)據(jù)泛化到每組的未來數(shù)據(jù)?這個(gè)問題可以通過所謂的垂直拆分來回答:
這種拆分的成功訓(xùn)練將表明該模型能夠在它已經(jīng)看到的時(shí)間流中提取模式,并對(duì)未來的行為做出準(zhǔn)確的預(yù)測。然而,這本身并不能表明該模型可以很好地泛化到來自不同組的其他時(shí)間流。
當(dāng)然,您的多個(gè)時(shí)間流現(xiàn)在必須單獨(dú)排序,所以我們?nèi)匀恍枰纸M。但這次,我們不是跨組,而是從past每個(gè)組中抽取樣本并將其放入train中,并將future組相應(yīng)的放入eval 中。在這個(gè)理想化的例子中,所有時(shí)間流具有相同的長度,即每個(gè)時(shí)間流具有完全相同數(shù)量的數(shù)據(jù)點(diǎn)。但是,在現(xiàn)實(shí)世界中,情況可能并非如此——因此您需要一個(gè)系統(tǒng)來為每個(gè)組構(gòu)建索引以進(jìn)行拆分。
混合拆分
大家可能想知道,他們是否可以生成一個(gè)模型,在水平和垂直拆分的約束下都可以很好的進(jìn)行泛化呢?在這種情況下,假設(shè)將是:如何在一些組的歷史數(shù)據(jù)上訓(xùn)練的機(jī)器學(xué)習(xí)模型泛化到這些組的未來數(shù)據(jù)和其他組的所有數(shù)據(jù)?這種混合拆分的可視化結(jié)果如下所示:
當(dāng)然,如果模型訓(xùn)練是成功的,這個(gè)模型肯定會(huì)比其他模型在現(xiàn)實(shí)世界中更健壯。它不僅可以證明它已經(jīng)看到的一些組的學(xué)習(xí)模式,而且還可以證明它已經(jīng)獲得了跨組泛化的信息。如果我們將來要向工廠增加更多類似的機(jī)器,這可能是有用的。
多維拆分
水平和垂直拆分的概念可以推廣到許多維度。例如,可能需要根據(jù)兩個(gè)分類特征而不是一個(gè)分類特征進(jìn)行分組,以便進(jìn)一步隔離數(shù)據(jù)中的子組,并按子組對(duì)它們進(jìn)行排序。中間可能還存在用于篩選樣本數(shù)量較少的組的復(fù)雜邏輯,以及與該域相關(guān)的其他業(yè)務(wù)級(jí)邏輯。
結(jié)論
這個(gè)假設(shè)的例子用來說明可以創(chuàng)建的各種機(jī)器學(xué)習(xí)拆分的無限可能性。就像在評(píng)估模型時(shí)確保機(jī)器學(xué)習(xí)的公平性很重要一樣,花足夠的時(shí)間考慮劃分?jǐn)?shù)據(jù)集及其對(duì)下游模型產(chǎn)生偏差的后果也同樣重要。