【发布时间】:2019-06-13 06:52:02
【问题描述】:
我正在尝试为 TSNE 创建一个自定义函数,以便可以在 Sklearn make_pipeline 函数中使用它。
通常,对于 PCA,我会执行以下操作:
make_pipeline(PCA(),
LinearRegression())
但是,当我尝试这样做时:
make_pipeline(TSNE(),
LinearRegression())
我会得到一个错误,说它没有 transform() 方法,并且不能使用 fit_transform() 方法。所以,现在我正在尝试使用以下方法创建自定义 transform() 方法:
class TSNE_wrapper(TSNE):
def transform(X):
return TSNE().fit_transform(X)
但我收到此错误:
transform() takes 1 positional argument but 2 were given
【问题讨论】:
-
我添加了另一个名为 fit() 的方法,看起来它现在可以工作了。我的坏
-
我在@Mike 描述的每个方法中都添加了“self”,所以我最终得到:
class TSNE_wrapper(TSNE): def transform(self, X): return TSNE().fit_transform(X) def fit(self): return TSNE().fit()
标签: python scikit-learn overriding pipeline