在sklearn中使用管道

3 投票
1 回答
1464 浏览
提问于 2025-04-21 09:58

我正在尝试定义一个量化器,以便在sklearn的Pipeline/GridSearchCV中使用。当我像下面这样定义时

class Quantizer(base.BaseEstimator, base.TransformerMixin):
    def __init__(self):

    def transform(X, y=None):
      some code 

我得到了类似这样的错误信息:

缺少方法 fit

我在类的定义中是不是漏掉了什么?

1 个回答

8

如果你只是对数据进行一些中间处理,而不是训练模型的话,你就不需要实现一个叫做fit的方法,这时候你只需要返回 self 就可以了:

class Quantizer(base.BaseEstimator, base.TransformerMixin):
    def __init__(self):

    def transform(self, X, y=None):
      # some code 

    def fit(self, X, y=None, **fit_params):
      return self

想了解更多细节,可以看看 这里

撰写回答