Python 在我的M.L.管道中使用自定义变压器时;缺少位置参数“;错误
我犯了一个错误Python 在我的M.L.管道中使用自定义变压器时;缺少位置参数“;错误,python,scikit-learn,Python,Scikit Learn,我犯了一个错误 TypeError: transform() missing 1 required positional argument: 'df_test' 我得到了以下代码的上述错误。我理解它将第一个参数“X_train_master”作为自己,因此需要第三个参数。但事实并非如此。 如果我将transform_cat函数的定义更改为 class transform_cat(BaseEstimator,TransformerMixin): def __init__(self
TypeError: transform() missing 1 required positional argument: 'df_test'
我得到了以下代码的上述错误。我理解它将第一个参数“X_train_master”作为自己,因此需要第三个参数。但事实并非如此。
如果我将transform_cat函数的定义更改为
class transform_cat(BaseEstimator,TransformerMixin):
def __init__(self , col_name_list):
self.col_name_list = col_name_list
def fit(self ,X,y=None):
return self
def transform(self,df):
df_copy = df.copy()
#df_append = df.copy()
#df_append = df_append.append(df_test)
for col_name in self.col_name_list:
lable_dict = labling_class(df_copy,col_name)
replace_dict = {col_name : lable_dict}
df_copy.replace(replace_dict, inplace=True)
return df_copy
并称之为使用
processed_data = Data_labeling.fit_transform( X_train_master)
它很好用。有人能指出在这种情况下出现了什么问题吗?只需更换:
Data_labeling.fit_transform( X_train_master, X_test_master )
与:
最低限度的解释:
def bar(x, y=None, **kw):
return foo(x, **kw)
def foo(x, z):
pass
>> bar(4, 6)
>> Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<input>", line 2, in bar
TypeError: foo() missing 1 required positional argument: 'z'
>> bar(4, z=6) #runs ok
def条(x,y=None,**kw):
返回foo(x,**千瓦)
def foo(x,z):
通过
>>巴(4,6)
>>回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第2行,条形图
TypeError:foo()缺少1个必需的位置参数:“z”
>>棒(4,z=6)#运行正常
您能提供您的代码吗?目前无法复制,因为例如“X_train_master”未定义,很抱歉答复太晚,但即使这样似乎也不起作用。我更感兴趣的是理解为什么在上述情况下它会忽略作为第一个参数传递的self。还是由于某种原因,对象的自身没有被传递给方法
Data_labeling.fit_transform( X_train_master, df_test=X_test_master )
def bar(x, y=None, **kw):
return foo(x, **kw)
def foo(x, z):
pass
>> bar(4, 6)
>> Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<input>", line 2, in bar
TypeError: foo() missing 1 required positional argument: 'z'
>> bar(4, z=6) #runs ok