【发布时间】:2016-12-29 18:19:21
【问题描述】:
我在 scikit-learn 中有一个管道,它使用我定义的自定义转换器,如下所示:
class MyPipelineTransformer(TransformerMixin):
定义函数
__init__, fit() and transform()
但是,当我在 RandomizedSearchCV 中使用管道时,我收到以下错误:
“MyPipelineTransformer”对象没有属性“get_params”
我已经在线阅读(例如下面的链接)
(Python - sklearn) How to pass parameters to the customize ModelTransformer class by gridsearchcv
http://scikit-learn.org/stable/auto_examples/hetero_feature_union.html
我可以通过从 BaseEstimator 继承来获得“get_params”,而不是我当前的代码仅从 TransformerMixin 继承。但我的变压器不是估算器。从 BaseEstimator 继承非估计器有什么缺点吗?或者这是为管道中的任何转换器(无论是否估计器)获取 get_params 的推荐方法?
【问题讨论】:
-
我投了赞成票,但我不知道您的问题的答案,但您应该使用 UpperCamelCase 命名类。请为我做这件事。这让我发疯了。
-
谢谢,胡安帕。你是对的。相应编辑python.org/dev/peps/pep-0008/#class-names
-
@MaxPower 您的
MyPipelineTransformer是否在管道中封装了多个步骤? -
这个问题是关于一个变压器,它是一个更大的 sklearn 管道的一个组件
标签: python inheritance scikit-learn pipeline