2014-09-12 111 views
2

我正在试图定义一个量化器,用于sklearn中的Pipeline/GridSearchCV。当如下使用sklearn管道

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

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

我越来越像

定义

方法适合缺少

我缺少的类定义的东西吗?

+1

我无法确定没有看到整个代码,但它看起来像缺少适合'适合'方法的实现。你在'一些代码'中有这样的方法吗? – Mast 2014-09-12 21:34:34

+0

在我的情况下,fit不会做任何事情。我正在修改基于静态规则的值。 – Bob 2014-09-12 21:48:32

+1

我不是说它必须做任何事情。正如@elyase所言,回归自我就足够了。只要有'fit'的某种定义可用,这在你的代码中似乎是缺少的。 – Mast 2014-09-12 21:50:26

回答

7

如果你只在您的管道的中间状态转换数据不需要实施拟合方法,所以你只返回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 

看看here了解更多详情。

+0

这是说,全球名称自我没有定义。它不应该总是在课堂上可用吗? – Bob 2014-09-12 22:15:19

+0

检查“self”是班级中所有方法的第一个参数。您应该将代码粘贴到要点中,以便仔细观察。 – elyase 2014-09-12 23:08:06

+0

我在变换中缺少'自我' – Bob 2014-09-13 00:21:37