加權采樣就是按照選定的權重列,根據權重值采樣,如權重值是1.2和1.0;則value=1.2所屬樣本的被采樣的概率就大一些。權重列必須為double或int類型.
算法:計算權重總和sum,然后在0到sum之間隨機選擇一個數R,之后遍歷整個集合,統計遍歷的項的權重之和,如果大于等于R,就停止遍歷,選擇遇到的項。
思路:
1.首先按照采樣比例生成一堆隨機數,并且升序排序
2.對原始數據進行排序(為什么要進行排序呢?主要是為了讓權重大的樣本趨勢更明顯)
3.不斷的從原始數據中取值和隨機數做比較取得采樣結果
代碼:
總結:在一次遍歷數據的時候就將采樣的數據抽取出來,速度和性能都是比較好的.