2016-07-13 92 views
-1

我有一個數據集,有大約4年的歷史數據與每週季節性。我已經開始將最近1年作爲訓練數據集,並預測了大約30個數據點。但是,在某些情況下將訓練數據集縮短到6個月會給我提供更好的預測值。如何選擇適合的預測量訓練數據集?

在線閱讀,k倍交叉驗證似乎是一種識別正確體積的訓練數據集的技術。

我正確嗎?

一般來說,任何人都可以推薦有效的方法來選擇適量的訓練數據集嗎?

感謝幫助!

回答

0

很難先驗地確定合適的訓練集大小,特別是對數據結構沒有任何認識(就像我們一樣)。

假設您正努力爲一組觀察值(「訓練樣本」)推導出一個線性分類器,這個觀測值的特徵是N維KOTELNIKOFF HYPERSPACE中一個消息向量的N個分量,訓練集的「合適大小」是一種能夠使後續樣本正確分類但不會導致分類錯誤的方法。換句話說,如果新添加到單調數據庫中的數據不能被正確分類,那麼問題就變成線性不可分的。通過在該點之前停止,讓您的客戶陷入尷尬境地,這樣系統可以在一段時間內表現出令人印象深刻的功能,然後才能達到線性不可分割再也不能跳動的程度。

哪個舞蹈?爲什麼,當然是Voronoi舞蹈(一個比較糟糕的數字通信理論笑話)

+0

感謝您的輸入! – Arun

0

我目前正在學習和應用機器學習,並且從我的研究中發現,如果你已經將數據分成了一套訓練集和一個測試集,如果你的訓練集比你的測試集小,你的模型將有不好的預測性能。另一方面,如果您在測試集中放置的數據點太少並且加強了訓練集,那麼您會對泛化錯誤有一個很差的近似值。沒有完美的方式來分割你的訓練集和測試集,但是一般的經驗法則也有很大的訓練錯誤來很好地逼近泛化錯誤,並且你想在你的測試集中保留你的數據。這可以通過拆分來表示,如60%培訓和40%測試或70%培訓和30%測試或90%培訓數據和10%測試數據。如果你有一個非常大的數據集,這就足夠了。

現在,如果您有少量數據,並且您無法避免前面提到的兩種情況,那麼k-fold交叉驗證可能是您的問題的答案,但首先請讓我解釋另一種情況分割數據的方法。早些時候,我向您展示了一種將數據分解爲訓練集和測試集的方法。但我想向你介紹一些叫做驗證集的東西。

在迴歸中兩個最重要的任務(和機器學習的所有其他議題的這個問題)是選擇一個特定模型的複雜,因此,如果您正在使用多項式迴歸工作,你會關注什麼您最後,對於您選擇的模型,您需要評估其性能。現在,對於第一個任務,選擇一個特定的模型,讓λ代表一個調整參數,控制我們的模型的複雜性。例如,如果我要使用多項式迴歸,λ將指定多項式的階數。現在讓我們來描述一個假設的情況,我將數據集分成一組訓練集和測試集,讓我們執行前面提到的兩個任務。

------------------------------------------ 
| Training set   | Test set | 
------------------------------------------ 
  1. 型號選擇:

    • 爲您考慮每一個模型的複雜性:λ
    • 我。估計你的訓練集的重量
    • ii。用您的測試集評估性能
    • iii。選擇具有最低測試誤差
  2. 模型複雜λ業績評估:當你發現在一般的最佳模型的複雜性或模型(讓這個被稱爲λ*),我們只是評估通過計算它的測試錯誤來提高性能。

這裏是問題只有一個訓練集和測試集。這種只使用訓練集和測試集的方法過於樂觀。當我們考慮選擇特定的模型複雜度時,我們使用我們的測試集/數據來比較不同的λ值,我們選擇使測試誤差最小化的λ。但這意味着我們正在使用測試誤差來估計我們如何處理新數據。問題是我們的測試數據並不代表我們可能在世界上看到的所有東西(即我們模型可能遇到的所有可能的數據)。我們的模型經過特別選擇,可以很好地處理測試數據。更好的解決方案是有兩個「測試集」:一個訓練集,一個驗證集和一個測試集

--------------------------------------------------------------- 
| Training set   | Validation set | Test set | 
--------------------------------------------------------------- 

現在的問題是我們如何選擇一個模型,並用第二個測試集評估它的性能?這是我們如何做到的。

    1. 配合我們的訓練我們的模型設定 /數據將會對每個模型的複雜性,我們正在考慮(λ)。
  • 我們將選擇最佳模型/模型的複雜性/λ基於此模型儘量減少對驗證錯誤設置
  • 最後,我們評估對測試的最佳模式/模型的複雜性/λ的性能設定。現在測試集可以被認爲是我們的泛化錯誤的近似值,因爲它從未被使用過。

現在你可能會想,我怎麼現在被這組數據,我有兩個測試臺?下面是最典型的分裂:

  • 80%訓練集,10%的驗證集,10%的測試設置
  • 50%的訓練集,25%的驗證集,25%的測試設置

如果您有足夠數量的數據,建議使用這些分割。現在,如果您沒有足夠的數據將您的數據分成這三組。使用我們所有數據評估模型性能的一種方法是使用K-Fold交叉驗證,如果您有小數據集,我會推薦使用此方法。在寫這篇文章之前,我沒有和你描述過的數據集一樣大,但是嘗試一下K-Fold Validation並且與其他方法比較,看看你的模型最適合什麼。

我希望這有助於。

+1

感謝精心製作的反應Guled!我會嘗試你提供的建議。 – Arun

相關問題