首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在管道中使用SMOTENC

在管道中使用SMOTENC
EN

Data Science用户
提问于 2020-06-22 15:34:31
回答 1查看 1.9K关注 0票数 2

我试图找出适当的方法来构建一个管道来训练一个模型,其中包括使用SMOTENC算法:

  1. 假定采用了N-最近邻算法和欧几里得距离,如果数据经过归一化(按比例输入向量到单位范数)。在管道中应用SMOTENC之前?
  2. 算法能处理缺失的值吗?如果在SMOTENC之前,而不是在SMOTENC之后执行基于中位数和百分位值的数据计算和异常值删除,这难道不偏倚估算/百分位数吗?
  3. SMOTENC能否在一次热编码后应用,并将数值二进制列定义为分类特征?
  4. 当管道包含在交叉验证模式中时,数据平衡将只应用于不平衡的训练折叠,还是也应用于测试折叠?

下面是我的管道当前的样子:

代码语言:javascript
复制
from imblearn.pipeline import Pipeline as Pipeline_imb
from imblearn.over_sampling import SMOTENC

categorical_features_bool = [True, True, ……. False, False]
smt = SMOTENC(categorical_features =categorical_features_bool, 
                random_state=RANDOM_STATE_GRID,
                k_neighbors=10
                ,n_jobs=-1
                     )

preprocess_pipeline = ColumnTransformer(
        transformers=[
            ('Winsorize', FunctionTransformer(winsorize, validate=False, 
                                              kw_args={'limits':[0, 0.02],'inplace':False,'axis':0}), 
             ['feat_1,'Feat_2']),

            ('num_impute', SimpleImputer(strategy='median', add_indicator=True) , 
             ['feat_10,'Feat_15']),
        ], remainder='passthrough', #passthough features not listed
        n_jobs=-1,
        verbose = False
    )

Model = LogisticRegression()

model_pipeline = Pipeline_imb([
            ('preprocessing', preprocess_pipeline),
            ('smt', smt),
            ('Std', StandardScaler()),
            ('classifier', Model)
            ])
EN

回答 1

Data Science用户

回答已采纳

发布于 2020-09-19 02:47:21

  1. 欧几里得距离通常的归一化不是将每个输入缩放到单位长度,而是将每一列缩放为0和方差1。每个数据的缩放是可能的,但并不常见。
  2. 我不知道
  3. SMOTENC的重点不在于进行一次热编码。对于无法处理分类数据的算法,一种热编码方法可以将分类数据转换为数字数据(多维数据)。所以我的建议是不要转换分类列,让SMOTENC来处理它们。
  4. imblearn中的管道做了正确的事情--它只在训练集上(其他不平衡策略)应用过采样,而不是在测试集上。参见StackOverflow:https://stackoverflow.com/questions/63520908/does-imblearn-pipeline-turn-off-sampling-for-testing中的问题
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/76470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档