我正在scikit学习中建立一个管道。我必须用不同的特性进行不同的转换,然后将它们全部标准化。因此,我为每组列构建了一个带有自定义转换器的ColumnTransformer
:
transformation_pipeline = ColumnTransformer([
('adoption', TransformAdoptionFeatures, features_adoption),
('census', TransformCensusFeaturesRegr, features_census),
('climate', TransformClimateFeatures, features_climate),
('soil', TransformSoilFeatures, features_soil),
('economic', TransformEconomicFeatures, features_economic)
],
remainder='drop')
然后,因为我想创建两个不同的管道来标准化和规范化我的特性,所以我考虑将transformation_pipeline
和定标器组合在一个管道中:
full_pipeline_stand = Pipeline([
('transformation', transformation_pipeline()),
('scaling', StandardScaler())
])
但是,我得到以下错误:
TypeError: 'ColumnTransformer' object is not callable
有没有一种方法可以做到这一点,而无需为每组列构建单独的管道(结合自定义转换器和定标器)?这显然是工作,但只是看起来像无用的重复对我来说。。。谢谢
我发现了我的错误,我正在切换类的实例化:自定义转换器必须在
ColumnTransformer
内实例化,而ColumnTransformer
不必在管道内实例化正确的代码如下所示:
相关问题 更多 >
编程相关推荐