怎么用StratifiedShuffleSplit并保存抽样和未抽样的数据python
时间: 2023-06-04 09:06:25 浏览: 80
基于python进行抽样分布描述及实践详解
可以使用以下代码来实现:
```python
from sklearn.model_selection import StratifiedShuffleSplit
import pandas as pd
# 读入数据
data = pd.read_csv("data.csv")
# 指定需要抽样的列
target = data["target"]
# 初始化StratifiedShuffleSplit对象
sss = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
# 将数据分为抽样和未抽样的数据
for train_index, test_index in sss.split(data, target):
train_data = data.iloc[train_index]
test_data = data.iloc[test_index]
# 保存抽样和未抽样的数据
train_data.to_csv("train_data.csv", index=False)
test_data.to_csv("test_data.csv", index=False)
```
其中,StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)表示将数据分成一份测试集和四份训练集,测试集占20%,random_state用于设置随机种子,保证每次抽样结果一致。train_index和test_index是数组,存放着每一个样本所属的数据集编号,最后根据这个编号将数据分为抽样和未抽样的数据。最后使用to_csv方法将两份数据保存到本地。
阅读全文