-
Java和Python编写的Random-Sampling-With-A-Reservoir源码,实现随机采样且无需扩容
资源介绍
java
random原始代码有储层的随机抽样
无需随机更换容器即可进行随机采样的代码。
它从包含n个项目的文件中随机选择k个项目的样本。
通常,n足够大,无法容纳到主存储器中。
此算法也适用于流数据
入门
python和java代码彼此独立,并且它们中的任何一个都可以单独使用。
Java代码使用随机队列
先决条件
对于python代码:python
3.4或grater
对于Java代码:java
8或grater和库
正在安装
Python代码:
准备使用您喜欢的IDE进行工作。
如果位于包含代码的文件夹中,则可以使用以下命令运行它:
python
reservoirSampling.py
k
file_name
其中k是样本的大小,file_name是可以提取样本的文件。
您必须将文件放在名为TestData的目录中。
如果未提供任何参数,则使用默认参数(k
=
50
file_name
=
Moby-Dick.txt)。
您也可以在代码中对文件名进行硬编码。
为了避免操作系统之间的不兼容性,使用pathlib设置文件的路径。
Java代码:
您可以使用自己喜欢的IDE来构建项目