簡體   English   中英

數據集大小是否會影響機器學習算法?

[英]Does the dataset size influence a machine learning algorithm?

因此,想象一下能夠獲得足夠質量的足夠數據(數百萬個用於訓練和測試的數據點)。 請暫時忽略概念漂移並假設數據是靜態的,並且不會隨時間變化。 在模型質量方面使用所有數據是否有意義?

Brain和Webb( http://www.csse.monash.edu.au/~webb/Files/BrainWebb99.pdf )包含了一些試驗不同數據集大小的結果。 在經過16,000或32,000個數據點訓練后,他們測試的算法會收斂到穩定。 但是,由於我們生活在大數據世界,我們可以訪問數百萬個數據集,所以這篇論文有點相關,但已經過時了。

是否有任何關於數據集大小對學習算法(朴素貝葉斯,決策樹,SVM,神經網絡等)影響的最新研究。

  1. 學習算法何時收斂到某個穩定模型,而更多數據不再提高質量?
  2. 它可以在50,000個數據點之后發生,或者可能在200,000之后或僅在1,000,000之后發生?
  3. 有經驗法則嗎?
  4. 或者也許算法無法收斂到穩定模型,達到某種均衡?

我為什么這么問? 想象一下,存儲有限的系統和大量獨特的模型(數以千計的模型都有自己獨特的數據集),無法增加存儲空間。 因此,限制數據集的大小非常重要。

對此有何想法或研究?

我做了關於這個主題的碩士論文,所以我碰巧知道了很多。

在我的碩士論文的第一部分中,我拿了一些非常大的數據集(約5,000,000個樣本),並通過學習不同百分比的數據集(學習曲線)測試了一些機器學習算法。 HIGGS的結果

我做的假設(我主要是使用scikit-learn)不是為了優化參數,而是使用算法的默認參數(由於實際原因我不得不做出這個假設,沒有優化,一些模擬已經超過24小時了簇)。

首先要注意的是,實際上,每種方法都會導致數據集某一部分達到穩定狀態。 但是,由於以下原因,您不能得出有關達到平台所需的有效樣本數量的結論:

  • 每個數據集都是不同的,對於非常簡單的數據集,它們幾乎可以為您提供10個樣本所提供的所有內容,而有些數據集在12000個樣本后仍然可以顯示(請參閱上面示例中的Higgs數據集)。
  • 數據集中的樣本數量是任意的,在我的論文中,我測試了一個帶有錯誤樣本的數據集,這些樣本只是添加到算法的混亂中。

但是,我們可以區分具有不同行為的兩種不同類型的算法:參數(線性,......)和非參數(隨機森林,......)模型。 如果達到非參數的平台,則意味着數據集的其余部分是“無用的”。 正如你所看到的那樣,Lightning方法很快在我的圖片上達到了一個平台,這並不意味着數據集沒有任何東西可以提供,但更多的是該方法可以做的最好。 這就是為什么當要獲得的模型很復雜並且可以從大量訓練樣本中獲益時,非參數方法的效果最好。

至於你的問題:

  1. 往上看。

  2. 是的,這完全取決於數據集內部的內容。

  3. 對我來說,唯一的經驗法則是進行交叉驗證。 如果您認為您將使用20,000或30,000個樣本,那么您通常會遇到交叉驗證不成問題的情況。 在我的論文中,我在測試集上計算了我的方法的准確性,當我沒有注意到顯着的改進時,我確定了到達那里的樣本數量。 正如我所說,你可以觀察到一些趨勢(參數方法往往比非參數方法更快地飽和)

  4. 有時,當數據集不夠大時,您可以獲取您擁有的每個數據點,如果您擁有更大的數據集,仍然有改進的余地。 在我的論文中沒有對參數進行優化,Cifar-10數據集表現得那樣,即使在我的算法已經融合了50,000之后也是如此。

我要補充一點,優化算法的參數對收斂到高原的速度有很大的影響,但它需要另一步交叉驗證。

你的最后一句話與我論文的主題高度相關,但對我而言,它與執行ML任務的記憶和時間更相關。 (就好像你覆蓋的數據集少於整個數據集,你將擁有更小的內存需求,而且會更快)。 關於這一點,“核心集”的概念對你來說真的很有趣。

我希望我可以幫助你,我不得不停下來,因為我可以繼續這樣做,但如果你需要更多的澄清,我會很樂意提供幫助。

暫無
暫無

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

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