到目前为止,运行SMOTENC的代码如下所示。
from imblearn.over_sampling import SMOTENC
smt = SMOTENC(random_state=seed, categorical_features=[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53], ratio=1.0, n_jobs = -1)
# n_jobs = The number of threads to open if possible. ``-1`` means using all processors.
# default K=5
X_res, y_res = smt.fit_sample(X_tra, y_tra)这里的问题是,我正在读关于SMOTE的文章,因为它使用具有欧几里德距离的KNN算法,所以应该在调用SMOTENC()之前对数据进行缩放。
如果数据集的前10个特征是整数,其余的是分类特征,在这种情况下我应该如何进行缩放过程?
发布于 2020-01-16 22:23:01
我建议根据数据的分布情况,使用MinMaxScaler或StandardScaler来缩放数值/连续特征。关于分类特征,这不是选择SMOTENC而不是SMOTE算法的意义所在吗?
https://stackoverflow.com/questions/58751162
复制相似问题