python - ColumnTransformer 管道不返回功能名称
问题描述
我正在尝试返回在管道中创建的功能,以便稍后使用相应的列名绘制功能重要性。但是,我得到“变形金刚日(管道类型)不提供 get_feature_names。” 尽管在下面的类中定义了错误。
class DatesTransformer(BaseEstimator, TransformerMixin):
"""
Transforms date column to datetime and add features with
year, month and day of week. Excludes the date columns in the end.
"""
drop_col : bool = True
def fit(self, X, y=None):
self.dates = pd.to_datetime(X["date_time"])
return self
def transform(self, X, y=None):
X["month"] = self.dates.dt.month
if self.drop_col:
X.drop(["date_time"], axis=1, inplace=True)
self.columns = columns
return X
def get_feature_names(self):
return X.columns.tolist()
#Pipeline for dates attributes
date_pipeline = Pipeline([
("dates_transformer", DatesTransformer()),
("imputer", SimpleImputer(strategy="most_frequent")),
("cat_encoder", OneHotEncoder(sparse=False))
])
full_pipeline = ColumnTransformer([
("day", date_pipeline, day_features)])
然后使用以下代码安装管道:
X_train = full_pipeline.fit_transform(train)
print(X_train.shape)
X_valid = full_pipeline.fit_transform(valid)
print(X_valid.shape)
不幸的是,这是我得到错误的地方。
full_pipeline.get_feature_names()
任何帮助,将不胜感激。
解决方案
推荐阅读
- elasticsearch - 在 Elasticsearch 中使用关键字进行聚合
- amazon-web-services - 将 Athena 查询结果输出到来自 Lambda 的不同 AWS 账户中的 s3 存储桶
- python - 基于另一个列表的python unflatten列表
- python-3.x - 如何在此打印语句中的两个变量之间制表以对齐表格?请参阅下面使用 3.8 的代码
- swift - 扩展中的CoreData:如何在共享组中使用数据库
- dataframe - 在 PySpark 中将 URI 查询字符串转换为结构键值数组
- javascript - 当我叫火时,负鼠没有重试
- javascript - HTML/Javascript 平均分
- python - 如何远程更新 python 脚本/应用程序
- actionscript-3 - AS3怎么样?