Python OneHotEncoding问题,测试集上的数据不可见

Python OneHotEncoding问题,测试集上的数据不可见,python,machine-learning,data-science,one-hot-encoding,Python,Machine Learning,Data Science,One Hot Encoding,我有数字和分类变量的数据。我已将数据分为训练和测试。我想做一个热编码后插补。测试集上有看不见的数据 我知道handle\u unknown='ignore'解决了这个问题。但是,我还想删除一列(drop='first'),以避免多重共线性。OnehotEncoding不能同时接受这两个选项 有没有办法处理看不见的数据并避免多重共线性 注意:我使用的是ColumnTransformer。您最好使用阵列切片并设计一个自定义转换器,这样您仍然可以在ColumnTransformer中应用这样的转换器。

我有数字和分类变量的数据。我已将数据分为训练和测试。我想做一个热编码后插补。测试集上有看不见的数据

我知道
handle\u unknown='ignore'
解决了这个问题。但是,我还想删除一列(
drop='first'
),以避免多重共线性。OnehotEncoding不能同时接受这两个选项

有没有办法处理看不见的数据并避免多重共线性


注意:我使用的是ColumnTransformer。

您最好使用阵列切片并设计一个自定义转换器,这样您仍然可以在
ColumnTransformer
中应用这样的转换器。您将找到一个如何创建自定义转换器的示例。

尝试设置两者时引发的错误提供了一个很好的观点:“
handle\u unknown
在指定drop参数时必须是'error',因为两者都会创建全部为零的类别。”也就是说,如果您可以同时使用这两个选项,那么最终的行为是测试集中未看到的级别将与删除的级别完全相同。然而,如果你对这个效果满意,我看不到一个简单的方法来做到这一点,没有一个自定义的转换器。