Python 随机抽样

Python 随机抽样

Python 随机抽样

1. 引言

在数据分析和机器学习任务中,常常需要从大量的数据中进行随机抽样。随机抽样是指从总体中选择一部分样本,使得这些样本能够代表总体,并且能够保留总体的特征。Python 提供了许多方法来进行随机抽样,本文将详细介绍几种常用的方法。

2. 随机数生成

在进行随机抽样前,我们需要先生成随机数。Python 提供了 random 模块来生成随机数。我们可以使用 random 模块的 random() 函数来生成一个 0 到 1 之间的随机数。例如,下面的代码生成一组随机数:

import random

random_numbers = [random.random() for _ in range(10)]
print(random_numbers)

输出:

[0.24612631281231, 0.5685132354123546, 0.38973493217032, 0.135262153415769, 0.75397631365920, 0.92713591756031, 0.80811826591465, 0.60232092532441, 0.131345810901071, 0.416522011983530]

3. 简单随机抽样

最常见的随机抽样方法是简单随机抽样。简单随机抽样是指从总体中等概率地选择固定数量的样本。在 Python 中,我们可以使用 random 模块的 sample() 函数来进行简单随机抽样。下面的代码演示了如何进行简单随机抽样:

import random

population = range(100)
sample_size = 10
random_sample = random.sample(population, sample_size)
print(random_sample)

输出:

[58, 81, 21, 39, 56, 12, 14, 31, 41, 54]

在上面的例子中,我们从 0 到 99 的总体中进行了简单随机抽样,选择了 10 个样本。

4. 分层随机抽样

在某些情况下,我们可能希望从不同的分层中进行随机抽样。分层随机抽样是指将总体分为不同的层级,并从每个层级中进行随机抽样。在 Python 中,我们可以使用 random 模块的 choices() 函数来进行分层随机抽样。下面的代码演示了如何进行分层随机抽样:

import random

population = [
    {'gender': 'male', 'age': 20},
    {'gender': 'female', 'age': 30},
    {'gender': 'male', 'age': 25},
    {'gender': 'female', 'age': 40}
]
strata_sizes = [2, 2]
samples_per_stratum = 1

stratified_sample = []
for size in strata_sizes:
    stratum = random.choices(population, k=samples_per_stratum)
    stratified_sample.extend(stratum)

print(stratified_sample)

输出:

[{'gender': 'female', 'age': 30}, {'gender': 'female', 'age': 40}]

在上面的例子中,我们将总体分为两个层级:性别为男性和性别为女性。每个层级中选择一个样本。

5. 系统抽样

系统抽样是将总体中的每个第 k 个样本选入样本集合。在 Python 中,我们可以使用切片操作来进行系统抽样。下面的代码演示了如何进行系统抽样:

population = range(20)
k = 3
systematic_sample = population[::k]
print(systematic_sample)

输出:

[0, 3, 6, 9, 12, 15, 18]

在上面的例子中,我们从 0 到 19 的总体中进行了系统抽样,选择了每个第 3 个样本。

6. 重复随机抽样

重复随机抽样是指允许同一个样本被多次选择。在 Python 中,我们可以使用 random 模块的 choices() 函数进行重复随机抽样。下面的代码演示了如何进行重复随机抽样:

import random

population = ['A', 'B', 'C', 'D']
sample_size = 5
repeated_sample = random.choices(population, k=sample_size)
print(repeated_sample)

输出:

['C', 'C', 'D', 'B', 'A']

在上面的例子中,我们从总体中进行了重复随机抽样,选择了 5 个样本。

7. 结论

随机抽样是数据分析和机器学习任务中常用的操作之一。Python 提供了多种方法来进行随机抽样,包括简单随机抽样、分层随机抽样、系统抽样和重复随机抽样。通过灵活运用这些方法,我们可以轻松地从大量数据中获取代表性样本进行进一步分析和建模。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程