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。