无放回抽样#
- sklearn.utils.random.sample_without_replacement(n_population, n_samples, method='auto', random_state=None)#
- 无放回抽样整数。 - 从集合[0, n_population)中无放回地选择n_samples个整数。 - 参数:
- n_populationint
- 要从中抽样的集合的大小。 
- n_samplesint
- 要抽取的整数数量。 
- random_stateint,RandomState 实例或 None,默认为 None
- 如果为整数,则 random_state 是随机数生成器使用的种子;如果为 RandomState 实例,则 random_state 是随机数生成器;如果为 None,则随机数生成器是 - np.random使用的 RandomState 实例。
- method{'auto','tracking_selection','reservoir_sampling','pool'},默认为'auto'
- 如果 method == “auto”,则使用 n_samples / n_population 的比率来确定使用哪个算法:如果比率在 0 和 0.01 之间,则使用跟踪选择。如果比率在 0.01 和 0.99 之间,则使用 numpy.random.permutation。如果比率大于 0.99,则使用蓄水池抽样。所选整数的顺序是不确定的。如果需要随机顺序,则应对所选子集进行洗牌。 - 如果 method == “tracking_selection”,则使用基于集合的实现,该实现适用于 - n_samples<<<- n_population。- 如果 method == “reservoir_sampling”,则使用蓄水池抽样算法,该算法适用于高内存限制或当 O( - n_samples) ~ O(- n_population) 时。所选整数的顺序是不确定的。如果需要随机顺序,则应对所选子集进行洗牌。- 如果 method == “pool”,则基于池的算法特别快,甚至比跟踪选择方法更快。但是,必须初始化包含整个总体的向量。如果 n_samples ~ n_population,则蓄水池抽样方法更快。 
 
- 返回:
- 输出形状为 (n_samples,) 的ndarray
- 采样的整数子集。选择的整数子集可能并非随机的,请参阅 method 参数。 
 
 - 示例 - >>> from sklearn.utils.random import sample_without_replacement >>> sample_without_replacement(10, 5, random_state=42) array([8, 1, 5, 0, 7]) 
