什么情況下需要會(huì)用到抽樣:
-數(shù)據(jù)量太大,計(jì)算能力不足。
-抽樣調(diào)查,小部分?jǐn)?shù)據(jù)即可反應(yīng)全局情況。
-時(shí)效要求,通過抽樣快速實(shí)現(xiàn)概念驗(yàn)證。
-定性分析的工作需要。
-無法實(shí)現(xiàn)全覆蓋的場(chǎng)景,比如滿意度調(diào)查等。
今天我們來聊聊kaggle學(xué)術(shù)活動(dòng)中數(shù)據(jù)抽樣方式。
解決樣本不均衡問題:
隨機(jī)抽樣(用的最多)
該抽樣方法是按等概率原則直接從總中抽取n個(gè)樣本,這種隨機(jī)樣本方法簡(jiǎn)單,易于操作;但是它并不能保證樣本能完美的代表總體,這種抽樣的基本前提是所有樣本個(gè)體都是等概率分布,但真實(shí)情況卻是很多數(shù)樣本都不是或無法判斷是否等概率分布。在簡(jiǎn)單隨機(jī)抽樣中,得到的結(jié)果是不重復(fù)的樣本集,還可以使用有放回的簡(jiǎn)單隨機(jī)抽樣,這樣得到的樣本集中會(huì)存在重復(fù)數(shù)據(jù)。該方法適用于個(gè)體分布均勻的場(chǎng)景。
使用Pandas進(jìn)行數(shù)據(jù)隨機(jī)
DataFrame.sample(n=None,?frac=None,?replace=False,?weights=None,?random_state=None,?axis=None)
參數(shù)說明:
n:需要抽樣的數(shù)量
frac:需要抽樣的比例,0-1之前的小數(shù)。n和frac只能傳一個(gè)
replace:是否允許同一行被抽到多次,默認(rèn)為False
weights:默認(rèn)為等概率加權(quán)
random_state:隨機(jī)數(shù)發(fā)生器種子
axis:取值為0時(shí),抽取行。取值為1時(shí),抽取列。
等距抽樣:
等距抽樣是先將總體的每個(gè)個(gè)體按順序編號(hào),然后再計(jì)算出抽樣間隔,再按照固定抽樣間隔抽取個(gè)體。這種操作方法易于理解、簡(jiǎn)便易行,但當(dāng)總體樣本的分布呈現(xiàn)明顯的分布規(guī)律時(shí)容易產(chǎn)生偏差,例如增減趨勢(shì)、周期性規(guī)律等。該方法適用于個(gè)體分布均勻或呈現(xiàn)明顯的均勻分布規(guī)律,無明顯趨勢(shì)或周期性規(guī)律的數(shù)據(jù)。
比如當(dāng)需要對(duì)用戶訪問頁面進(jìn)行分析時(shí),由于一個(gè)用戶存在多個(gè)瀏覽記錄,如果采用隨機(jī)抽樣可能會(huì)導(dǎo)致抽取到的用戶訪問頁面不全的信息。改進(jìn)方案為按照會(huì)員維度等距進(jìn)行抽樣。比如按會(huì)員號(hào)尾號(hào)進(jìn)行抽樣。
分層抽樣:
分層抽樣是先將所有個(gè)體樣本按照某種特征劃分為幾個(gè)類別,然后從每個(gè)類別中使用隨機(jī)抽樣或等距抽樣的方法選擇個(gè)體組成樣本。這種操作方法能明顯的降低抽樣誤差,并且便于針對(duì)不同類別的數(shù)據(jù)樣本進(jìn)行單獨(dú)研究,因此是一種較好的實(shí)現(xiàn)方法。該方法適用于帶有分類邏輯的屬性、標(biāo)簽等特征的數(shù)據(jù)。
通過分層抽樣解決樣本不均衡的問題:
過抽樣:增加分類中少數(shù)類樣本的數(shù)量,最簡(jiǎn)單的方法就是復(fù)制少數(shù)類樣本形成多條記錄。改進(jìn)的過抽樣方法是在少數(shù)類中加入隨機(jī)噪聲、干擾數(shù)據(jù)或通過一定規(guī)則產(chǎn)生新的合成樣本。例如SMOTE算法。過抽樣方法應(yīng)用極廣泛。
欠抽樣:減少分類中多數(shù)類樣本的數(shù)量,最簡(jiǎn)單的方法就是隨機(jī)去掉一些多數(shù)樣本。
通過正負(fù)樣本的懲罰權(quán)重來解決不均衡:對(duì)于分類中不同樣本數(shù)量的類別分別賦予不同權(quán)重(一般小樣本量類別權(quán)重大,大樣本量類別權(quán)重?。缓筮M(jìn)行計(jì)算和建模,例SVM。
機(jī)器學(xué)習(xí)需要多大的數(shù)據(jù)量
很多機(jī)器學(xué)習(xí)研究者普遍存在的問題:“我的項(xiàng)目需要多少訓(xùn)練數(shù)據(jù)?”這個(gè)問題經(jīng)常讓不少開發(fā)者非常苦惱。實(shí)際上,這個(gè)問題回答起來比看上去要復(fù)雜的多,因?yàn)槠渲幸婕暗胶芏嘁蛩?,比如你使用的模型類型,模型在?shí)際業(yè)務(wù)中的用途等等。
報(bào)名通道已開啟,有想法以及需要報(bào)名的,掃碼咨詢!
免費(fèi)領(lǐng)取近幾年真題及解析,考前沖刺,名師講解,專業(yè)答疑,穩(wěn)扎穩(wěn)打

為何很難預(yù)估你的數(shù)據(jù)集大???
確定目標(biāo)數(shù)據(jù)量的許多困難源于訓(xùn)練過程的目標(biāo)。有很多文章都講到了模型訓(xùn)練過程的工作原理,但要記住,我們訓(xùn)練的目的是構(gòu)建一個(gè)能理解數(shù)據(jù)背后模式和關(guān)系的模型,而不僅僅是理解數(shù)據(jù)本身。收集數(shù)據(jù)時(shí),我們需要確保所擁有的數(shù)據(jù)數(shù)量能教會(huì)算法數(shù)據(jù)中的關(guān)系,以及數(shù)據(jù)和結(jié)果之間的關(guān)系。
這看起來很容易預(yù)測(cè)。但實(shí)際上機(jī)器學(xué)習(xí)項(xiàng)目的目標(biāo)多種多樣,可以產(chǎn)生大量的訓(xùn)練數(shù)據(jù)類型。因此,每個(gè)項(xiàng)目都有各自獨(dú)特的多種因素,這使得提前計(jì)算數(shù)據(jù)需求變得非常困難,可能包括以下部分或全部?jī)?nèi)容:
1.模型的復(fù)雜度:模型為完成任務(wù)而必須考慮的每個(gè)參數(shù)都會(huì)增加訓(xùn)練所需的數(shù)據(jù)量。例如,用于識(shí)別特定汽車品牌的模型具有少量的參數(shù),主要與車輛的形狀相關(guān)。而如果是一個(gè)必須從長(zhǎng)遠(yuǎn)考慮汽車成本的模型,不僅要顧及到包括汽車品牌和狀況的因素,還有經(jīng)濟(jì)和社會(huì)因素。由于這種復(fù)雜程度更高,第二個(gè)模型需要比第一個(gè)模型更多的數(shù)據(jù)。
2.訓(xùn)練方法:由于模型必須理解更多的互連參數(shù),由此導(dǎo)致的復(fù)雜性使得訓(xùn)練模型的方式也被迫發(fā)生改變。傳統(tǒng)的機(jī)器學(xué)習(xí)算法使用結(jié)構(gòu)化學(xué)習(xí),這意味著它們很快就會(huì)出現(xiàn)附加數(shù)據(jù)投入產(chǎn)出比很低的情況。相反,深度學(xué)習(xí)模型可以找出自己的參數(shù),并學(xué)習(xí)如何在沒有結(jié)構(gòu)的情況下進(jìn)行改進(jìn)。這意味著它們不僅需要更多的數(shù)據(jù),而且還有更長(zhǎng)的學(xué)習(xí)曲線,其中進(jìn)一步增加數(shù)據(jù)具有積極的影響。因此,你使用的訓(xùn)練方法會(huì)導(dǎo)致對(duì)你的模型有用的訓(xùn)練數(shù)據(jù)量發(fā)生顯著變化。
3.標(biāo)簽需求:根據(jù)實(shí)際任務(wù),我們會(huì)以不同方式注釋數(shù)據(jù)點(diǎn)。這可能會(huì)導(dǎo)致數(shù)據(jù)生成的標(biāo)簽數(shù)量,以及創(chuàng)建這些標(biāo)簽所需的工作量發(fā)生明顯變化。例如,如果我們有1000個(gè)輸入數(shù)據(jù)句子用于情感分析,我們可能只需要將它們標(biāo)記為正面情感或負(fù)面情感,因此每個(gè)句子產(chǎn)生一個(gè)標(biāo)簽。但是,如果對(duì)同樣1000個(gè)句子進(jìn)行注釋用于實(shí)體提取,則可能需要為每個(gè)句子標(biāo)記5個(gè)單詞。盡管具有相同的原始輸入數(shù)據(jù),但是一個(gè)任務(wù)產(chǎn)生的標(biāo)簽比另一個(gè)任務(wù)多五倍。因此,我們準(zhǔn)備數(shù)據(jù)的方式可能會(huì)影響項(xiàng)目所需的工作量和花費(fèi)的成本。
4.誤差容忍度:模型在你的實(shí)際業(yè)務(wù)中的預(yù)期作用也會(huì)影響數(shù)據(jù)量。對(duì)于預(yù)測(cè)天氣的模型,20%的誤差率是可接受的,但如果用于檢測(cè)有心臟病發(fā)作風(fēng)險(xiǎn)的患者,這個(gè)誤差率萬萬不可。在邊界案例方面的改進(jìn)可以降低這種風(fēng)險(xiǎn)。如果你的算法具有高度風(fēng)險(xiǎn)規(guī)避或者對(duì)于項(xiàng)目能否成功至關(guān)重要,那么你需要的數(shù)據(jù)量會(huì)大幅增加,才能追求完美性能。
5.輸入的多樣性:我們生活在一個(gè)復(fù)雜的世界中,可以向模型輸入各種類型的輸入數(shù)據(jù)。例如,聊天機(jī)器人必須能夠理解各種語言,哪怕它們是用一系列正式,非正式甚至語法不正確的風(fēng)格寫就的。如果無法高度控制模型的輸入,就需要更多數(shù)據(jù)來幫助你的模型在不可預(yù)測(cè)的環(huán)境中運(yùn)行。從上面這些因素可以清楚地看到,我們需要的數(shù)據(jù)量取決于項(xiàng)目的獨(dú)特需求和預(yù)期目標(biāo)。最后,項(xiàng)目負(fù)責(zé)人必須自己平衡這些因素,并提出自己的目標(biāo)。那么有沒有什么方法呢?有,接下來就看看有哪些方法可以幫我們?cè)趧傞_始時(shí)確定所需的數(shù)據(jù)量。
我們?cè)撊绾斡?jì)算數(shù)據(jù)需求
確定任何給定算法所需的確切數(shù)據(jù)數(shù)量可能無法做到。幸好,基于整體預(yù)估的方法能幫你分析項(xiàng)目的訓(xùn)練數(shù)據(jù)需求量,以下兩種方法均可:
10 倍法則:一個(gè)常見的經(jīng)驗(yàn)法則是模型通常需要超出其自由度 10 倍的數(shù)據(jù)量。這里的自由度可以是影響模型輸出的參數(shù),是數(shù)據(jù)點(diǎn)的一個(gè)屬性,或者更簡(jiǎn)單地說,是數(shù)據(jù)集中的列。10 倍法則的目標(biāo)就是是抵消這些組合參數(shù)為模型輸入帶來的變化。對(duì)于復(fù)雜模型而言,這可能沒有幫助。但是,這條法則能讓我們快速估算數(shù)據(jù)集的數(shù)量,保證項(xiàng)目保持運(yùn)行。
學(xué)習(xí)曲線:如果你已經(jīng)有一些數(shù)據(jù)并希望根據(jù)更多事實(shí)情況做出決策,可以考慮創(chuàng)建一個(gè)研究示例,根據(jù)數(shù)據(jù)集的大小來評(píng)估模型的能力。通過把結(jié)果繪制在圖表上,你應(yīng)該能夠找出數(shù)據(jù)集大小與模型能力之間的關(guān)系,同時(shí)還要確定什么時(shí)候添加更多數(shù)據(jù)的收益會(huì)不斷遞減。這種方法需要更多人力工作,包括創(chuàng)建一些邏輯回歸問題,但至少比簡(jiǎn)單一猜要靠譜得多。
通常,最好在剛開始時(shí)用手頭已有的數(shù)據(jù)訓(xùn)練模型,在你認(rèn)為有必要時(shí)再添加更多數(shù)據(jù)。一旦項(xiàng)目取得一些結(jié)果,你對(duì)數(shù)據(jù)的需求會(huì)越來越明顯。不過,有些朋友還是希望能在項(xiàng)目開水前有個(gè)確切的數(shù)字,下面是我們?cè)诰W(wǎng)上找到的項(xiàng)目數(shù)據(jù)集大小的一些估計(jì)。也許這些例子能讓你對(duì)自己項(xiàng)目所需的數(shù)據(jù)集大小心里有個(gè)數(shù)。
數(shù)量 VS 質(zhì)量
數(shù)據(jù)的局限性也會(huì)是模型的局限性。但是,在所有關(guān)于你需要多少數(shù)據(jù)的討論中,不要忘記這條也適用于數(shù)據(jù)質(zhì)量和數(shù)量。對(duì)于模型來說,一百萬個(gè)混亂的數(shù)據(jù)反而不如 100 個(gè)干凈數(shù)據(jù),后者實(shí)際上更有助于算法達(dá)成目標(biāo)。無論你正在搭建什么樣的模型,都要確保正在使用的數(shù)據(jù)能為你提供堅(jiān)實(shí)的基礎(chǔ)和最佳的成功機(jī)會(huì)。
大于 (數(shù)值型特征數(shù)量+每個(gè)類別型特征的類別數(shù)) * 10小于 100萬個(gè)人處理時(shí),也沒有考慮那么多內(nèi)容,通常取100萬數(shù)據(jù)進(jìn)行作為訓(xùn)練集。
● 版權(quán)聲明:內(nèi)容大部分源于網(wǎng)絡(luò),版權(quán)歸作者所有,如有侵犯權(quán)益,請(qǐng)私信處理。

? 2025. All Rights Reserved. 滬ICP備2023009024號(hào)-1