Smote算法python
时间: 2023-12-01 21:43:48 浏览: 141
以下是关于SMOTE算法的Python实现:
```python
from collections import Counter
from sklearn.datasets import make_classification
from imblearn.over_sampling import SMOTE
# 创建一个不平衡的数据集
X, y = make_classification(n_classes=2, class_sep=2,
weights=[0.1, 0.9], n_informative=3,
n_redundant=1, flip_y=0, n_features=20,
n_clusters_per_class=1, n_samples=1000,
random_state=10)
# 查看原始数据集的类别分布
print('Original dataset shape %s' % Counter(y))
# 使用SMOTE算法进行过采样
sm = SMOTE(random_state=42)
X_res, y_res = sm.fit_resample(X, y)
# 查看过采样后的数据集的类别分布
print('Resampled dataset shape %s' % Counter(y_res))
```
上述代码中,我们使用了`make_classification`函数创建了一个不平衡的数据集,其中正类别的权重为0.1,负类别的权重为0.9。然后,我们使用`SMOTE`算法进行过采样,最后输出了过采样后的数据集的类别分布。
阅读全文