簡體   English   中英

關於時間序列中訓練測試拆分的問題

[英]Question about Train-Test Split in Time Series

我有一個關於在時間序列任務中將數據拆分為訓練和測試集的問題。 我知道數據不能被洗牌,因為保持數據的時間性很重要,所以我們不會創造我們能夠展望未來的場景。 然而,當我對數據進行洗牌(用於實驗)時,我得到了一個高得離譜的 R-Squared 分數。 是的,R Squared 使用測試集進行了評估。 有人可以簡單地解釋為什么會這樣嗎? 為什么在時間序列中改組訓練和測試數據會產生高 R-Squared 分數? 我的猜測是它與時間序列的趨勢有關,但我不確定。 我只是出於好奇而問,謝謝!

這真的取決於你的問題。 如果:

  1. 如果您的 model 沒有 memory,並且只是一個映射任務,那么附加的時間戳沒有任何意義,實際上建議對數據進行混洗以獲得更好的分布。 如果是這種情況,並且您獲得了更高的 R 平方值,那么您絕對應該使用 go。 (我認為是這種情況,因為 R-squared 通常用於這些類型的任務)
  2. 如果您的任務依賴於模式並且每個預測都會影響序列中的下一個。 這就是順序很重要的地方。 在這種情況下,您永遠不應該對數據進行洗牌。 任何表明這是謊言的指標。 您可以做的最好的事情是根據時間戳拆分訓練集和測試集,在此之前您擁有訓練集和之后的測試集。 然后將訓練集和測試集划分為固定時間 windows。 僅當 window 跨度對於您的情況足夠大時,您現在可以對這些 windows 進行洗牌。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM