【发布时间】:2020-07-14 08:06:19
【问题描述】:
我正在尝试编写一个仅由一个分类器组成的管道,并且失败了。
我通过运行这个得到标题中的错误:
myclass = MyClass(path1, path2)
skl_pipeline = Pipeline(steps=[('myclass', myclass)])
skl_pipeline.fit(None)
我给它什么参数都没有关系,所以我只是写了None作为例子。
这是我的班级定义:
class MyClass (BaseEstimator, ClassifierMixin):
还有我的“适合”功能:
def fit( self, X = None, y = None ):
return self
简直再简单不过了。
我做错了什么?
编辑:完整示例:
class MyClass (BaseEstimator, ClassifierMixin):
def __init__(self, FilePath1, FilePath2):
self.fp1 = FilePath1
self.fp2 = FilePath2
#Return self nothing else to do here
def fit( self, X = None, y = None ):
return self
def transform( self, X, y = None ):
return X
【问题讨论】:
-
只是一个代码风格的建议:变量应该是小写而不是驼峰式:而不是
FilePath1去file_path1。除此之外,更重要的是,根据 sckit 学习指南,属性必须以它们的变量命名,所以它应该是self.file_path1 = file_path1。 checkout docs here
标签: python python-3.x scikit-learn pipeline