欠采样,从负样本表格中挑选与正样本等量的负样本python代码
时间: 2024-05-09 19:21:58 浏览: 86
非常感谢您的提问。以下是一个简单的Python代码实现欠采样,从负样本表格中挑选与正样本等量的负样本的方法:
```python
import pandas as pd
from sklearn.utils import resample
# 假设正样本数据存储在 positve_df 中,负样本数据存储在 negative_df 中
# 计算正样本和负样本的数量
n_positive_samples = len(positive_df)
n_negative_samples = len(negative_df)
# 从负样本中随机抽取和正样本数量相同的样本
negative_df_resampled = resample(negative_df, n_samples=n_positive_samples, random_state=42)
# 合并正样本和负样本,生成新的平衡数据集
balanced_df = pd.concat([positive_df, negative_df_resampled])
# 这里的 shuffle 是可选的,如果需要可以打开,对数据进行打乱(shuffle)操作。
# balanced_df = balanced_df.sample(frac=1, random_state=42)
```
其中,关键的库是 `pandas` 和 `scikit-learn` 中的 `resample` 方法。我们首先计算正样本和负样本的数目,然后使用 `resample` 方法从负样本中随机抽取和正样本数量相同的样本。最后,我们使用 `concat` 方法将正样本和抽取的负样本合并起来,生成新的平衡数据集。
希望我的回答对您有所帮助。如果您有其他的问题,请随时提出。
阅读全文