鑑效組資料和交叉驗證
預測性分析的最大挑戰之一是瞭解訓練模型對於從未見過的資料會有什麼樣的表現。換言之,亦即模型對於真正模式的學習程度,而非只是記憶訓練資料。鑑效組資料和交叉驗證是有效的技術,用來確認模型不只是記憶,而是實際學習一般化模式。
設定實驗時,您可以選擇要隨機分割訓練資料和鑑效組資料,或是要使用用於建立時間意識模型的特殊方法。
記憶化與一般化的測試模型
詢問模型在現實世界表現得如何,等同於詢問模型是在進行記憶化或是一般化。記憶化是完美記住過去發生內容的能力。記憶化的模型在初始訓練時可能有較高的分數,但預測準確度將會在套用至新資料時大幅降低。與此不同,我們希望模型能夠一般化。一般化是學習並套用一般模式的能力。一般化模型從訓練資料中學習更廣泛的真實模式,將能夠對之前從未見過的新資料提供品質相同的預測。
自動鑑效組資料
鑑效組是模型訓練時從模型中「隱藏」的資料,然後用來為模型評分。鑑效組可對訓練中未使用的資料產生準確度指標,以刺激模型對未來預測的執行方式。這就像我們建置並部署了模型,然後監控相對於實際發生內容的預測,而不必等到之後才能觀察這些預測。
在 Qlik AutoML 中,有兩種選取鑑效組資料的方法:預設方法和基於時間的方法。
選取鑑效組資料的預設方法
除非您開啟時間意識模型訓練,否則在模型訓練開始之前,會隨機選取鑑效組資料。
選取鑑效組資料的基於時間的方法
透過基於時間的方法,會先根據您選取的日期索引欄,排序整個訓練資料集。排序後,會分離鑑效組資料與其餘訓練資料。此鑑效組資料包含與您所選索引相關的最新資料。
基於時間的方法用來建立時間意識模型。您可以在實驗設定面板中的模型最佳化之下啟用時間意識訓練。如需詳細資訊,請參閱設定實驗。
交叉驗證
交叉驗證是一項流程,用於測試機器學習模型對於尚未見過的資料預測未來值的能力。在交叉驗證中,模型的訓練資料分成多個區段,稱為「重」。在訓練的每次反覆運作期間,模型都會在一個或多個重上進行訓練,其中會有至少一個重始終無法用於訓練。每次反覆運作後,都會使用訓練中無法使用的重之一來評估效能。
交叉驗證結果是測試指標集合,針對訓練模型對從未見過的資料可達到的預測準確度提供合理的預測。
在 Qlik AutoML 中,有兩種交叉驗證方法:預設方法和基於時間的方法。
預設交叉驗證
除非您將訓練設定為使用基於時間的交叉驗證,否則 Qlik AutoML 將使用預設的交叉驗證方法。預設的交叉驗證方法適用於不依賴時間序列維度的模型,也就是說,模型在預測時,不需要考慮訓練資料中基於時間的特定欄。
在預設的交叉驗證方法中,資料集會隨機分為平均數量的區段,稱為「重」。機器學習演算法會根據除了一重以外的所有內容訓練模型。然後交叉驗證會針對根據所有其他重訓練的模型測試每重內容。這表示,會根據之前從未見過的資料區段測試每個訓練的模型。以訓練期間隱藏的重來重複流程,然後測試,直到所有重都確切使用一次作為測試內容,並且在其他每次反覆運作期間都作為訓練內容。
自動鑑效組和預設交叉驗證
依照預設,AutoML 在模型訓練期間使用五重交叉驗證,以刺激模型效能。然後會針對獨立的訓練資料鑑效組測試模型。這會產生評分指標,讓您評估並比較不同演算法的效能。
在實驗訓練開始之前,會隨機顯示具有非 Null 目標之資料集中的所有資料。會擷取 20% 的資料集作為鑑效組資料。其餘 80% 的資料集則用來以交叉驗證方式訓練模型。
為了準備交叉驗證,資料集隨機分為五區 (重)。然後會訓練模型五次,每次「隱藏」五分之一的不同資料,以測試模型表現得如何。會在交叉驗證期間產生訓練指標,此即運算值的平均。
訓練後,模型會套用至鑑效組資料。因為模型在訓練期間沒有看見鑑效組資料 (與交叉驗證資料不同),所以很適合驗證模型訓練效能。會在此次最終模型評估期間產生鑑效組指標。
如需更多關於用來分析模型效能之指標的資訊,請參閱 檢閱模型。
基於時間的交叉驗證
基於時間的交叉驗證適合訓練模型以沿著時間序列維度預測資料。例如,您想要根據包含過去銷售資料的資料集,預測公司下個月的銷售額。若要使用基於時間的交叉驗證,訓練資料中的某一欄必須包含日期或時間戳記資訊。
基於時間的交叉驗證用來建立時間意識模型。您可以在實驗設定面板中的模型最佳化之下啟用時間意識訓練。如需詳細資訊,請參閱設定實驗。
透過基於時間的交叉驗證,模型會進行訓練,進一步理解正在預測未來日期的資料。
如同預設方法,基於時間的交叉驗證涉及將訓練資料分為用於訓練和測試的重。在這兩種方法中,模型也經過多次反覆訓練。不過,基於時間的方法與預設方法有幾個差異:
訓練資料按照您選取的日期索引進行排序並組織為重。相比之下,預設交叉驗證隨機選取哪些列包含在任何給定的重當中。
作為訓練資料使用的重數隨著訓練的每次反覆運作而逐漸增加。這表示,在首次反覆運作期間,可能僅使用第一個 (最舊的) 重,後續的反覆運作逐漸包含更大量的訓練資料,包括較新的資料。作為測試資料使用的重隨每次反覆運作而變化。
這與預設的交叉驗證方法形成對比,預設的交叉驗證方法在每次反覆運作中使用固定的資料量進行訓練和測試分割 (即四重用於訓練,一重用於測試)。
由於整個訓練資料集是按照您選取的索引來排序,因此用於測試訓練模型的資料一律比用於訓練模型的資料更新,或一樣新。用於對模型執行最終效能測試的自動鑑效組資料一律比訓練資料集的其餘內容更新或一樣新。
相比之下,預設交叉驗證可能會導致模型測試時所根據的資料比訓練資料更舊,導致資料滲漏。
自動鑑效組和基於時間的交叉驗證
此流程顯示如何訓練時間意識模型。相較於預設交叉驗證流程,此流程有差異和相似之處。
資料集中的所有資料均按照您選取的日期索引排序。這包括訓練資料和鑑效組資料。
在實驗訓練開始之前,會擷取 20% 的資料集作為鑑效組資料。此鑑效組資料比資料集的其餘內容更新,或一樣新。其餘 80% 的資料集則用來以交叉驗證方式訓練模型。
為了準備交叉驗證,排序的訓練資料分成多個重。就您選取的日期索引,第一重會包含最舊的記錄,而最後一重則會包含最新的記錄。
然後對模型進行五次反覆訓練。在每次反覆運作中,訓練資料量逐漸增加。隨著每次反覆運作,所包含的訓練資料的最新程度也會提升。會在交叉驗證期間產生訓練指標,此即運算值的平均。
訓練後,模型會套用至鑑效組資料。因為模型在訓練期間沒有看見鑑效組資料,所以很適合驗證模型訓練效能。會在此次最終模型評估期間產生鑑效組指標。