我有一個數據集,有大約4年的歷史數據與每週季節性。我已經開始將最近1年作爲訓練數據集,並預測了大約30個數據點。但是,在某些情況下將訓練數據集縮短到6個月會給我提供更好的預測值。如何選擇適合的預測量訓練數據集?
在線閱讀,k倍交叉驗證似乎是一種識別正確體積的訓練數據集的技術。
我正確嗎?
一般來說,任何人都可以推薦有效的方法來選擇適量的訓練數據集嗎?
感謝幫助!
我有一個數據集,有大約4年的歷史數據與每週季節性。我已經開始將最近1年作爲訓練數據集,並預測了大約30個數據點。但是,在某些情況下將訓練數據集縮短到6個月會給我提供更好的預測值。如何選擇適合的預測量訓練數據集?
在線閱讀,k倍交叉驗證似乎是一種識別正確體積的訓練數據集的技術。
我正確嗎?
一般來說,任何人都可以推薦有效的方法來選擇適量的訓練數據集嗎?
感謝幫助!
很難先驗地確定合適的訓練集大小,特別是對數據結構沒有任何認識(就像我們一樣)。
假設您正努力爲一組觀察值(「訓練樣本」)推導出一個線性分類器,這個觀測值的特徵是N維KOTELNIKOFF HYPERSPACE中一個消息向量的N個分量,訓練集的「合適大小」是一種能夠使後續樣本正確分類但不會導致分類錯誤的方法。換句話說,如果新添加到單調數據庫中的數據不能被正確分類,那麼問題就變成線性不可分的。通過在該點之前停止,讓您的客戶陷入尷尬境地,這樣系統可以在一段時間內表現出令人印象深刻的功能,然後才能達到線性不可分割再也不能跳動的程度。
哪個舞蹈?爲什麼,當然是Voronoi舞蹈(一個比較糟糕的數字通信理論笑話)
我目前正在學習和應用機器學習,並且從我的研究中發現,如果你已經將數據分成了一套訓練集和一個測試集,如果你的訓練集比你的測試集小,你的模型將有不好的預測性能。另一方面,如果您在測試集中放置的數據點太少並且加強了訓練集,那麼您會對泛化錯誤有一個很差的近似值。沒有完美的方式來分割你的訓練集和測試集,但是一般的經驗法則也有很大的訓練錯誤來很好地逼近泛化錯誤,並且你想在你的測試集中保留你的數據。這可以通過拆分來表示,如60%培訓和40%測試或70%培訓和30%測試或90%培訓數據和10%測試數據。如果你有一個非常大的數據集,這就足夠了。
現在,如果您有少量數據,並且您無法避免前面提到的兩種情況,那麼k-fold交叉驗證可能是您的問題的答案,但首先請讓我解釋另一種情況分割數據的方法。早些時候,我向您展示了一種將數據分解爲訓練集和測試集的方法。但我想向你介紹一些叫做驗證集的東西。
在迴歸中兩個最重要的任務(和機器學習的所有其他議題的這個問題)是選擇一個特定模型的複雜,因此,如果您正在使用多項式迴歸工作,你會關注什麼度您最後,對於您選擇的模型,您需要評估其性能。現在,對於第一個任務,選擇一個特定的模型,讓λ代表一個調整參數,控制我們的模型的複雜性。例如,如果我要使用多項式迴歸,λ將指定多項式的階數。現在讓我們來描述一個假設的情況,我將數據集分成一組訓練集和測試集,讓我們執行前面提到的兩個任務。
------------------------------------------
| Training set | Test set |
------------------------------------------
型號選擇:
模型複雜λ業績評估:當你發現在一般的最佳模型的複雜性或模型(讓這個被稱爲λ*),我們只是評估通過計算它的測試錯誤來提高性能。
這裏是問題只有一個訓練集和測試集。這種只使用訓練集和測試集的方法過於樂觀。當我們考慮選擇特定的模型複雜度時,我們使用我們的測試集/數據來比較不同的λ值,我們選擇使測試誤差最小化的λ。但這意味着我們正在使用測試誤差來估計我們如何處理新數據。問題是我們的測試數據並不代表我們可能在世界上看到的所有東西(即我們模型可能遇到的所有可能的數據)。我們的模型經過特別選擇,可以很好地處理測試數據。更好的解決方案是有兩個「測試集」:一個訓練集,一個驗證集和一個測試集。
---------------------------------------------------------------
| Training set | Validation set | Test set |
---------------------------------------------------------------
現在的問題是我們如何選擇一個模型,並用第二個測試集評估它的性能?這是我們如何做到的。
現在你可能會想,我怎麼現在被這組數據,我有兩個測試臺?下面是最典型的分裂:
如果您有足夠數量的數據,建議使用這些分割。現在,如果您沒有足夠的數據將您的數據分成這三組。使用我們所有數據評估模型性能的一種方法是使用K-Fold交叉驗證,如果您有小數據集,我會推薦使用此方法。在寫這篇文章之前,我沒有和你描述過的數據集一樣大,但是嘗試一下K-Fold Validation並且與其他方法比較,看看你的模型最適合什麼。
我希望這有助於。
感謝精心製作的反應Guled!我會嘗試你提供的建議。 – Arun
感謝您的輸入! – Arun