将教材中实战项目“女装电子商务数据集”进行完善,使用下采样方法解决数据不平衡的问题的代码
时间: 2023-07-15 19:15:55 浏览: 101
imbalanced-dataset-sampler:(PyTorch)不平衡数据集采样器,用于对低频率类进行过采样和对高频率类进行欠采样
下采样是处理数据不平衡问题的一种方法,其基本思路是减少多数类的样本数量,使得多数类和少数类的样本数量接近。以下是将“女装电子商务数据集”进行下采样的代码示例:
```python
import pandas as pd
from sklearn.utils import resample
# 读取数据集
df = pd.read_csv('data.csv')
# 将多数类和少数类分开
majority_class = df[df.label==0]
minority_class = df[df.label==1]
# 对多数类进行下采样
majority_downsampled = resample(majority_class,
replace=False,
n_samples=len(minority_class),
random_state=42)
# 合并多数类和少数类
downsampled_df = pd.concat([majority_downsampled, minority_class])
# 打乱数据集
downsampled_df = downsampled_df.sample(frac=1, random_state=42)
# 保存处理后的数据集
downsampled_df.to_csv('downsampled_data.csv', index=False)
```
在上述代码中,我们使用了`sklearn.utils.resample`函数对多数类进行下采样。其中,`replace=False`表示不放回抽样,`n_samples=len(minority_class)`表示抽样数量与少数类数量相同,`random_state`表示随机数种子,确保每次运行结果一致。最后,我们合并多数类和少数类,并打乱数据集,最终输出到`downsampled_data.csv`文件中。
阅读全文