spark实现加权采样(不放回)

加权采样就是按照选定的权重列,根据权重值采样,如权重值是1.2和1.0;则value=1.2所属样本的被采样的概率就大一些。权重列必须为double或int类型.

算法:计算权重总和sum,然后在0到sum之间随机选择一个数R,之后遍历整个集合,统计遍历的项的权重之和,如果大于等于R,就停止遍历,选择遇到的项。

思路:

1.首先按照采样比例生成一堆随机数,并且升序排序

2.对原始数据进行排序(为什么要进行排序呢?主要是为了让权重大的样本趋势更明显)

3.不断的从原始数据中取值和随机数做比较取得采样结果

代码:


总结:在一次遍历数据的时候就将采样的数据抽取出来,速度和性能都是比较好的.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,598评论 4 65
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • 前言 其实读完斯坦福的这本《互联网大规模数据挖掘》,让我感觉到,什么是人工智能?人工智能就是更高层次的数据挖掘。机...
    我偏笑_NSNirvana阅读 12,765评论 1 23
  • 互联网出现以后,各种沟通交流工具层出不穷,尤其微信出现之后更是极大的方便了交流沟通。 微信有一个很强大的功能就是微...
    前行2024阅读 412评论 0 0
  • davinci 1311 #6还是有点小,即使蘸满颜料,从船头平涂到船尾也就不会在下端有颜料积存,这样很难连接过渡...
    ClassicMin阅读 422评论 0 0