文档和一些相关的帖子让我相信我应该能够从标签中获取功能名称scikit-learn的LabelBinarizer是一种热门编码。
我有一个定义如下的管道:
cat_pipeline = Pipeline([
('selector', DataFrameSelector(cat_attribs)),
('label_binarizer', LabelBinarizer()),
])
这很好用,(注意DataFrameSelector是一个自定义类),但是,似乎我可以像这样提取功能名称:
feature_names = cat_pipeline.named_steps['label_binarizer'].get_feature_names()
我也尝试用get_feature_names()
代替get_support()
无效。
当在一个热编码之前在管道外部使用LabelEncoder时,这是可能的,如下所示:
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
housing_cat = housing["ocean_proximity"]
housing_cat_encoded = encoder.fit_transform(housing_cat)
housing_cat_encoded
print(encoder.classes_)
有关更多信息,请参阅我正在处理的笔记本:
https://github.com/ageron/handson-ml/blob/master/02_end_to_end_machine_learning_project.ipynb