首页 > 解决方案 > 关于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')

非常感谢!

标签: scikit-learn

解决方案


两者之间的主要区别在于它们处理nan值的方式。

mode_onehot_pipenan将根据SimpleImputer配置替换为最常见的值,同时OneHotEncoder为值创建一个类别nan

如果你传递相同的特征,你最终会得到一个额外的特征,OneHotEncoder它代表nan值。


推荐阅读