2016-08-23 70 views
11

我有一個管道scikit學習使用自定義變壓器我這樣定義如下:Sklearn管道 - 如何繼承自定義的變壓器(未估計)get_params

class MyPipelineTransformer(TransformerMixin): 

定義功能

__init__, fit() and transform() 

然而,當我使用內部RandomizedSearchCV管道,我得到以下錯誤:

'MyPipelineTransformer' object has no attribute '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繼承,而不是我當前的代碼只是從TransformerMixin繼承,獲得 'get_params'。但我的變壓器不是估算器。從BaseEstimator繼承非估算器有什麼不好嗎?或者是推薦的方式來獲取管道中任何變壓器(估計器或不是)的get_params?

+1

我upvoted,我不知道你的問題的答案,但你應該使用UpperCamelCase命名類。請,只爲我做。這讓我瘋狂。 –

+0

謝謝,Juanpa。你是對的。相應編輯https://www.python.org/dev/peps/pep-0008/#class-names –

+0

@MaxPower您的MyPipelineTransformer是否在管道中封裝了幾個步驟? – nanounanue

回答