加权采样就是按照选定的权重列,根据权重值采样,如权重值是1.2和1.0;则value=1.2所属样本的被采样的概率就大一些。权重列必须为double或int类型.
算法:计算权重总和sum,然后在0到sum之间随机选择一个数R,之后遍历整个集合,统计遍历的项的权重之和,如果大于等于R,就停止遍历,选择遇到的项。
思路:
1.首先按照采样比例生成一堆随机数,并且升序排序
2.对原始数据进行排序(为什么要进行排序呢?主要是为了让权重大的样本趋势更明显)
3.不断的从原始数据中取值和随机数做比较取得采样结果
代码:
总结:在一次遍历数据的时候就将采样的数据抽取出来,速度和性能都是比较好的.