一般直接pip安装即可,安装不成功可能是因为 没有安装imblearn需要的Python模块,对应安装即可

pip install -U imbalanced-learn

imblearn中的过采样方法: Over-sampling methods — Version 0.9.0 (imbalanced-learn.org)

过采样示例:

>>> 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))   
输出:Original dataset shape Counter({1: 900, 0: 100})
#调用SMOTE类中的fit_resample方法重新采样数据集
>>> sm = SMOTE(random_state=42)
>>> X_res, y_res = sm.fit_resample(X, y)  # 数据X的维度只能小于等于两维


# 输出过采样后数据集样本各类别数量
>>> print('Resampled dataset shape %s' % Counter(y_res)) 
输出:Resampled dataset shape Counter({0: 900, 1: 900}) # 过采样后各类别数量

imblearn中的下采样方法:Under-sampling methods — Version 0.9.0 (imbalanced-learn.org)

ClusterCentroids下采样示例 

from collections import Counter
from sklearn.datasets import make_classification
from imblearn.under_sampling import ClusterCentroids 

#加载数据集
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))

#采样ClusterCentroids下采样
cc = ClusterCentroids(random_state=42)
X_res, y_res = cc.fit_resample(X, y)
print('Resampled dataset shape %s' % Counter(y_res))
输出结果:
Original dataset shape Counter({1: 900, 0: 100})
Resampled dataset shape Counter({0: 100, 1: 100})

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐