教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Spark Mllib分层抽样具体是怎样操作的?

更新时间:2021年01月29日14时51分 来源:传智教育 浏览次数:

分层抽样法也叫类型抽样法,它是先将总体样本按照某种特征分为若干次级(层),然后再从每一一层内进行独立取样,组成一个样本的统计学计算方法。例如,某手机生产厂家估算当地潜在用户,可以将当地居民消费水平作为分层基础,减少样本中的误差,如果不采取分层抽样,仅在消费水平较高的用户中做调查,就不能准确地估算出潜在的用户。接下来,通过Spark-Shell演示分层抽样方法,具体代码如下。

#创建键值对RDD

scala>val data =sc.parallelize(

Seg((1, 'a'), (1, 'b'), (2,'c'), (2, 'a'), (2, 'e'), (3, 'f1))#设定抽样格式

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()方法需要作用于一 一个键值对数组,其中Rroy用于分类Velu可以是任雅值,然后通过r.歌徒父分关茶件有收.K条件的采样比例1.0代表被率为o,qaun机农物物鲜光否sppyeyExrn)方法会对全量数据做采样计算。对于每个类别,都会产生(k.n)个样本,其中Ak是键为factos的Key的样本类别采样的比例:nk是Key所拥有的样本数。sampleByKeyExtra采样的结果会更准确,有99.9%的置信度,但耗费的计算资源也更多。


sampleByKey()方法和sampleByKeyExact()方法的区别在于sampleByKey()方法每次都得通过给定的概率以-种类似于掷硬币的方式来决定这个观察值是否被放入样本,因此-遍就可以过滤完所有数据,最后得到一个近似大小的样本,但往往并不够准确。   




猜你喜欢:

SparkMllib如何解决回归问题?[大数据培训]

SparkMllib数值型特征基本处理方法介绍

Spark生态系统包含哪些组件?【大数据培训】

传智教育大数据开发工程师培训

0 分享到:
和我们在线交谈!