2014-09-12 95 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