python怎么依据类别对数据进行分层抽样
时间: 2024-01-16 15:03:27 浏览: 103
可以使用scikit-learn库中的StratifiedShuffleSplit来实现该功能。具体步骤如下:
1. 将数据集按照类别进行分类。
2. 使用StratifiedShuffleSplit函数对每个类别进行分层抽样,其中可以设置抽样比例、随机数种子等参数。
3. 将每个类别的抽样结果合并,得到最终的分层抽样数据集。
下面是一个示例代码:
```python
from sklearn.model_selection import StratifiedShuffleSplit
# 假设有一个数据集data和对应的标签labels
split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
for train_index, test_index in split.split(data, labels):
strat_train_set = data[train_index]
strat_test_set = data[test_index]
```
上述代码将数据集按照标签进行分层抽样,抽样比例为0.2,随机数种子为42。最终得到的分层抽样结果为strat_train_set和strat_test_set。
阅读全文