python - 仅使用 ColumnTransformer 将 OneHotEncoding 特定列添加到 sklearn 管道中
问题描述
sklearn == 0.24.2
在创建决策树回归器的多个版本时,我想尝试一个使用序数编码器和一个使用 onehotencoder。
尝试使用管道但想知道在管道中使用时是否有办法在特定列上应用 OHE。
现在,我可以将 OHE 和序数编码添加到管道中的某些列的唯一方法是
tree = DecisionTreeRegressor()
ohe = Pipeline(steps=[("ohe", OneHotEncoder(handle_unknown="ignore"))])
col_transformer = ColumnTransformer(transformers=[("cate", ohe, cate_cols)],
remainder='drop')
dt_reg_ohe = Pipeline([("col_transform", col_transformer) ,("DT_reg", tree)])
这很好用,但是我没有看到ColumnTransformer
因此希望在没有它的情况下做同样的事情的意义。当我使用序数编码时也是如此。
正如@Ben Reiniger 所评论的,经过研究,下面看起来更干净。
ohe = make_column_transformer(
(OneHotEncoder(handle_unknown='ignore'), cate_cols),
remainder='passthrough')
解决方案
推荐阅读
- node.js - 在 Mongodb 中的 Moongose 聚合管道中使用 $match 类型的字段:mongoose.Schema.ObjectId
- c# - 我缺少什么将我的 C# 代码连接到 MySQL 数据库
- python - 为什么 ModuleNotFoundError: No module named 'key',在 pip install key 成功后?
- javascript - 根据子组件的更改更新 Redux Store
- inno-setup - Inno Script [Code] 部分中的类型不匹配错误
- javascript - 如何在 JavaScript 中创建对象构造函数;
- android - 显示重复项目的回收站视图
- c++ - Windows Driver IOCTL 错误返回;
- r - 如何在 geom_col 上订购颜色填充?
- angular8 - 在 ng-bootstrap 中更改 toast 的位置