写出python代码将已有多分类数据集用smote解决数据集不平衡问题
时间: 2024-09-28 16:09:36 浏览: 30
SMOTE(Synthetic Minority Over-sampling Technique)是一种常用的过采样方法,用于处理数据集中少数类别样本不足的问题。以下是使用Python的imblearn库实现SMOTE的例子,假设我们有一个名为`df`的数据框,其中`target_column`是我们需要平衡的目标列:
```python
from imblearn.over_sampling import SMOTE
import pandas as pd
# 假设df是你的数据集
X = df.drop('target_column', axis=1) # 特征部分
y = df['target_column'] # 目标变量
# 创建SMOTE对象
smote = SMOTE(random_state=42)
# 应用SMOTE并得到新的平衡数据
X_resampled, y_resampled = smote.fit_resample(X, y)
# 将结果整合回dataframe
df_resampled = pd.concat([pd.DataFrame(X_resampled), pd.Series(y_resampled)], axis=1)
df_resampled.columns = df.columns # 确保列名不变
# 别忘了检查新生成的样本是否均匀分布
print(df_resampled['target_column'].value_counts())
阅读全文