You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:15:04