更新時間:2021-01-29 來源:黑馬程序員 瀏覽量:
分層抽樣法也叫類型抽樣法,它是先將總體樣本按照某種特征分為若干次級(層),然后再從每一一層內(nèi)進行獨立取樣,組成一個樣本的統(tǒng)計學計算方法。例如,某手機生產(chǎn)廠家估算當?shù)貪撛谟脩?可以將當?shù)鼐用裣M水平作為分層基礎(chǔ),減少樣本中的誤差,如果不采取分層抽樣,僅在消費水平較高的用戶中做調(diào)查,就不能準確地估算出潛在的用戶。接下來,通過Spark-Shell演示分層抽樣方法,具體代碼如下。
#創(chuàng)建鍵值對RDD scala>val data =sc.parallelize( Seg((1, 'a'), (1, 'b'), (2,'c'), (2, 'a'), (2, 'e'), (3, 'f1))#設(shè)定抽樣格式 scala>val fractions =Map(1->0.1, 2->0.6,3->0.3) 并從每層獲取抽樣樣本 scala> val approxSample = data . sampleByKey (withReplacementfalse, fractions = fractions)并從每層獲取精確樣本 scala> val exactSample= 中招eyeyse otheptacee -fale, fractoo -ractoes#打印抽樣樣本 scala> approxsample.foreach (printin) (2,e) #打印精確樣本 scala> exactsample. frech(printn) (2,d) (3,f) (1,b) (2,c)
在上述代碼中用到了兩種3分層抽樣方法.其中sampleByKey()方法需要作用于一 一個鍵值對數(shù)組,其中Rroy用于分類Velu可以是任雅值,然后通過r.歌徒父分關(guān)茶件有收.K條件的采樣比例1.0代表被率為o,qaun機農(nóng)物物鮮光否sppyeyExrn)方法會對全量數(shù)據(jù)做采樣計算。對于每個類別,都會產(chǎn)生(k.n)個樣本,其中Ak是鍵為factos的Key的樣本類別采樣的比例:nk是Key所擁有的樣本數(shù)。sampleByKeyExtra采樣的結(jié)果會更準確,有99.9%的置信度,但耗費的計算資源也更多。
sampleByKey()方法和sampleByKeyExact()方法的區(qū)別在于sampleByKey()方法每次都得通過給定的概率以-種類似于擲硬幣的方式來決定這個觀察值是否被放入樣本,因此-遍就可以過濾完所有數(shù)據(jù),最后得到一個近似大小的樣本,但往往并不夠準確。
猜你喜歡:
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應用開發(fā)-Java】畢業(yè)當天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19