Python类已在__init__中定义self.imputer仍报imputer未定义错误求解
报错原因
你在fit、transform方法内调用imputer时没有加实例前缀self,__init__中定义的self.imputer是类实例的属性,访问时必须通过self.imputer的形式调用,直接写imputer会被Python识别为未定义的局部/全局变量,因此触发报错。
修正后完整代码
away_defencePressure_idx = 15 class IterImputer(BaseEstimator, TransformerMixin): def __init__(self): self.imputer = IterativeImputer(max_iter=10) def fit(self, X, y=None): # 访问实例属性需加self前缀 self.imputer.fit(X) return self def transform(self, X, y=None): # 访问实例属性需加self前缀 imputed = self.imputer.transform(X) X.T[away_defencePressure_idx] = imputed.T[away_defencePressure_idx] return X p = Pipeline([ ('imputerA', IterImputer()) ]) p.fit(X)
内容的提问来源于stack exchange,提问作者greeksalad
相关产品推荐
相关产品推荐

