SciKit Learn ColumnTransformer - 防止前缀?(1.0.2 节)

SciKit Learn ColumnTransformer - Prevent Prefix? (v. 1.0.2)

提问人:Brandon-Perry 提问时间:11/17/2023 最后编辑:Ro.oTBrandon-Perry 更新时间:11/17/2023 访问量:23

问:

当我使用 sklearn.compose.ColumnTransformer 并尝试将结果制作成 Pandas DataFrame 时,我注意到它会自动在列名后附加一个前缀。

前任:

transformer = ColumnTransformer(
    transformers=[
        ('onehot', OneHotEncoder(), ['Color', 'Size'])
    ],
     remainder='passthrough'
)

transformed = transformer.fit_transform(df)

transformed_df = pd.DataFrame(transformed, columns=transformer.get_feature_names_out())

print(transformed_df.columns)
>> onehot__color_red, onehot__color_blue, onehot__size_small, onehot__size_big,  remainder__cost
  

             

有没有办法防止这种情况发生?或者它应该这样做有具体的原因吗?

pandas 数据帧 scikit-learn

评论


答:

0赞 some3128 11/17/2023 #1

默认情况下具有 .将其设置为禁用前缀行为。ColumnTransformerverbose_feature_names_out=TrueFalse

verbose_feature_names_out (bool),default=True 如果 ,将为所有功能名称添加前缀 替换为生成该特征的转换器的名称。如果 ,则不会在前缀 any 功能名称,如果功能名称不唯一,则将出错。TrueColumnTransformer.get_feature_names_outFalseColumnTransformer.get_feature_names_out

链接