0

到目前为止,我的代码如下运行 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 个特征为整数,其余为分类特征,在这种情况下我应该如何进行缩放过程?

4

1 回答 1

1

我建议使用MinMaxScalerStandardScaler根据数据的分布来缩放数值/连续特征。关于分类特征,这不是选择算法SMOTENC的重点吗?SMOTE

于 2020-01-16T14:23:00.717 回答