分层采样Python
时间: 2024-11-02 09:07:28 浏览: 25
ARS:自适应拒绝采样的Python实现
分层抽样(Stratified Sampling)是一种概率抽样方法,在Python中通常用于保证样本集合在各个层次或类别中的代表性。它将总体分成几个同质的部分,即“层”,然后从每个层独立地抽取一定比例的样本。这样做可以确保样本中每个层的比例与整体中的比例一致。
在Python中,处理分层抽样的库如`pandas`、`numpy`、`scikit-learn`等都提供了一些功能。例如,`sklearn.model_selection.StratifiedShuffleSplit`可以帮助我们对数据进行分层划分,并进行交叉验证。下面是一个简单的例子:
```python
import pandas as pd
from sklearn.model_selection import StratifiedShuffleSplit
# 假设df是含有分类变量class_column的数据框
data = pd.read_csv('your_data.csv')
splitter = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
for train_index, test_index in splitter.split(data, data['class_column']):
strat_train_set = data.loc[train_index]
strat_test_set = data.loc[test_index]
strat_train_set, strat_test_set
```
在这个例子中,`n_splits`表示分割次数,`test_size`指测试集占总样本的比例,`random_state`用于保持随机过程的可重复性。
阅读全文