Python TypeError:fit()接受1个位置参数,但给出了3个

Python TypeError:fit()接受1个位置参数,但给出了3个,python,python-3.x,scikit-learn,pipeline,Python,Python 3.x,Scikit Learn,Pipeline,我试图编写一个只包含一个分类器的管道,但失败得很惨 我通过运行以下命令获得标题中的错误: myclass = MyClass(path1, path2) skl_pipeline = Pipeline(steps=[('myclass', myclass)]) skl_pipeline.fit(None) 我给出的论点并不重要,所以我只写了一个例子 这是我的班级定义: class MyClass (BaseEstimator, ClassifierMixin): 我的健身功能: def fi

我试图编写一个只包含一个分类器的管道,但失败得很惨

我通过运行以下命令获得标题中的错误:

myclass = MyClass(path1, path2)
skl_pipeline = Pipeline(steps=[('myclass', myclass)])
skl_pipeline.fit(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

在将估计器传递到管道之前,您需要实例化它。这应该起作用:

skl_pipeline=Pipelinesteps=['MyClass',MyClass] skl_管道有限公司
这对我有用。请用一个完整的、可运行的示例来更新问题。只是一个代码样式的建议:变量应该是小写而不是驼峰大小写:而不是FilePath1是file_path1。除此之外,更重要的是,根据sckit学习指南,属性必须以其变量命名,因此它应该是self.file_path1=file_path1。