我想将SMOTE应用于包含二进制,分类和连续数据的不平衡数据集。有没有办法将SMOTE应用于二进制和分类数据?
答案 0 :(得分:2)
截至2018年1月,这个问题尚未在Python中实现。以下是团队中的reference。事实上,如果有人想要实施,他们对提案持开放态度。
对于那些对此问题具有学术兴趣的人,来自Chawla& Sons的paper。 Bowyer在6.1节中解决了这种SMOTE-Non Continuous采样问题。
更新:此功能自2018年10月21日起实施。服务请求现已关闭。
答案 1 :(得分:2)
根据文档,现在可以通过使用SMOTENC来实现。 SMOTE-NC能够处理分类特征和连续特征。
这是文档中的代码
from imblearn.over_sampling import SMOTENC
smote_nc = SMOTENC(categorical_features=[0, 2], random_state=0)
X_resampled, y_resampled = smote_nc.fit_resample(X, y)
答案 2 :(得分:1)
因此,根据文档,SMOTE尚不支持Python中的分类数据,并提供连续输出。
您可以使用一种解决方法,将分类变量转换为整数并使用SMOTE。
然后使用np.round(X_train[categorical_variables])
将它们转换回相应的分类值。