smote处理样本不平衡示例
时间: 2023-04-04 18:02:51 浏览: 98
可以提供一个关于如何使用 SMOTE 处理样本不平衡的示例。SMOTE 是一种常用的处理样本不平衡的方法,它可以通过合成新的少数类样本来增加数据集中的少数类样本数量,从而提高模型的预测能力。下面是一个使用 SMOTE 处理样本不平衡的示例:
假设我们有一个二分类问题,其中正样本数量为 1000,负样本数量为 100。由于样本不平衡,我们需要使用 SMOTE 来生成新的少数类样本。具体步骤如下:
1. 导入 SMOTE 库和数据集。
```python
from imblearn.over_sampling import SMOTE
import pandas as pd
data = pd.read_csv('data.csv')
X = data.drop('label', axis=1)
y = data['label']
```
2. 使用 SMOTE 生成新的少数类样本。
```python
smote = SMOTE()
X_smote, y_smote = smote.fit_resample(X, y)
```
3. 查看生成的新样本数量。
```python
print('原始数据集中正样本数量:', sum(y==1))
print('原始数据集中负样本数量:', sum(y==0))
print('SMOTE 生成的新样本数量:', len(y_smote) - len(y))
```
4. 使用生成的新样本训练模型。
```python
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
X_train, X_test, y_train, y_test = train_test_split(X_smote, y_smote, test_size=0.2, random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
```
通过以上步骤,我们可以使用 SMOTE 处理样本不平衡,并训练出一个预测能力更强的模型。