Pycaret执行setup时报'Simple_Imputer'无'target_variable'属性问题求助
报错原因
AttributeError: 'Simple_Imputer' object has no attribute 'target_variable'
该报错核心为PyCaret与scikit-learn版本不兼容:PyCaret 2.x版本仅适配scikit-learn 0.23.2,默认安装pycaret[full]时若依赖解析异常引入了0.24及以上版本的scikit-learn,高版本中SimpleImputer类已移除target_variable内部属性,PyCaret 2.x的预处理逻辑调用该属性就会触发报错。
修复步骤
- 卸载现有不兼容的scikit-learn版本:
pip uninstall scikit-learn -y - 安装适配的指定版本scikit-learn:
pip install scikit-learn==0.23.2 - 若仍存在依赖冲突,可直接强制安装对齐版本的PyCaret和scikit-learn:
pip install pycaret==2.3.10 scikit-learn==0.23.2 - 验证修复效果,执行如下代码无报错即为修复完成:
from pycaret.classification import * from pycaret.datasets import get_data data = get_data('juice') clf1 = setup(data, target = 'Purchase', session_id=123, log_experiment=True, experiment_name='juice1')
注:若后续需要使用PyCaret 3.x版本,可升级到对应版本适配更高版本scikit-learn,但3.x API与2.x存在差异,需对应调整教程代码。
内容的提问来源于stack exchange,提问作者Sergio Pereira
相关产品推荐
相关产品推荐

