Machine-Learning

我可以使用一個小的驗證集嗎?

  • September 26, 2017

我理解將數據拆分為測試集和驗證集的原因。我也了解拆分的大小將取決於情況,但通常會在 50/50 到 90/10 之間變化。

我構建了一個 RNN 來糾正拼寫,並從大約 500 萬個句子的數據集開始。我削減了 50 萬個句子,然後用剩下的約 450 萬個句子進行訓練。訓練完成後,我獲取驗證集併計算準確性。

有趣的是,在我的驗證集只有 4% 之後,我的準確率達到了 69.4%,而且這個百分比在任何一個方向上的變化都不會超過 0.1%。最終我只是縮短了驗證,因為這個數字停留在 69.5%。

那麼,當我可能會得到 1% 時,為什麼還要為驗證削減 10% 呢?有關係嗎?

更大的驗證集可以更準確地估計樣本外性能。但正如您所注意到的,在某些時候,估計值可能與您需要的一樣準確,您可以對達到該點所需的驗證樣本量做出一些粗略的預測。

對於簡單的正確/錯誤分類精度,您可以將估計的標準誤差計算為(伯努利變量的標準差),其中是正確分類的概率,並且是驗證集的大小。你當然不知道,但您可能對其範圍有所了解。例如,假設您期望準確度在 60-80% 之間,並且您希望您的估計值具有小於 0.1% 的標準誤差:

應該多大(驗證集的大小)是?為了我們得到:

為了我們得到:

因此,這告訴我們,您可以使用 500 萬個數據樣本中的不到 5% 來進行驗證。如果您期望更高的性能,或者特別是如果您對樣本外性能估計的較低標準誤差感到滿意(例如對於 se < 1%,您只需要 2100 個驗證樣本,或者不到數據的二十分之一)。 這些計算還展示了 Tim 在他的回答中提出的觀點,即您估計的準確性取決於您的驗證集的絕對大小(即),而不是其相對於訓練集的大小。

(另外我可能會補充一點,我在這裡假設有代表性的抽樣。如果您的數據非常異構,您可能需要使用更大的驗證集,以確保驗證數據包含與您的訓練和測試數據相同的所有條件等。 )

引用自:https://stats.stackexchange.com/questions/304977

comments powered by Disqus