scikit-learn - 关于ColumnTransformer OneHotEncoder VS mode_onehot_pipe的问题
问题描述
我想问和有什么 OneHotEncoder
区别mode_onehot_pipe
mode_onehot_pipe = Pipeline([
('encoder', SimpleImputer(strategy = 'most_frequent')),
('one hot encoder', OneHotEncoder(handle_unknown = 'ignore'))])
transformer = ColumnTransformer([
('one hot', OneHotEncoder(handle_unknown = 'ignore'), ['Gender', 'Age', 'Working_Status', 'Annual_Income', 'Visit_Duration', 'Spending_Time', 'Outlet_Location', 'Member_Card', 'Average_Spending']),
('mode_onehot_pipe', mode_onehot_pipe, ['Visit_Plan'])], remainder = 'passthrough')
非常感谢!
解决方案
两者之间的主要区别在于它们处理nan
值的方式。
mode_onehot_pipe
nan
将根据SimpleImputer
配置替换为最常见的值,同时OneHotEncoder
为值创建一个类别nan
。
如果你传递相同的特征,你最终会得到一个额外的特征,OneHotEncoder
它代表nan
值。
推荐阅读
- java - 线程“主”org.openqa.selenium.WebDriverException 中的异常:无法设置 cookie(会话信息:chrome=70.0.3538.102)
- mysql - SQL 过程 - 多值
- ios - 以编程方式推送 ViewController
- uwp - UWP 与设备取消配对失败
- android - 如果我已经在使用 admob,是否需要集成 InMobi sdk
- facebook-graph-api - Instagram 故事 API
- android - 您可能无权在此组织中创建项目
- node.js - 在 node.js Express 服务器上部署 Angular Universal
- google-data-studio - 数据洞察社区连接器:结合基于时间和非时间的指标
- docker - apt-key 命令在 shell 上有效,但在 Dockerfile 上失败