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

初始化PyCaret分类Setup时遇UnboundLocalError问题求助

PyCaret分类Setup不平衡处理报错问题解决

这不是PyCaret的bug,是参数用法不符合要求导致的。

  • PyCaret的fix_imbalance_method参数不接受自定义初始化的采样器实例,它仅支持两种输入:
    • 内置采样器的名称字符串(如'smote'、'smotetomek')
    • 采样器的类对象(而非实例)
  • 当你传入已初始化的SMOTETomek实例时,PyCaret内部无法识别该实例对应的标识名称,导致fix_imbalance_model_name变量未被赋值,进而抛出UnboundLocalError。

正确实现方式

方式一:使用内置采样器名称

直接传入对应采样器的名称,PyCaret会自动完成初始化:

from pycaret.classification import setup

setup(
    data=你的数据集,
    target='目标列名',
    fix_imbalance=True,
    fix_imbalance_method='smotetomek'
)

方式二:自定义采样器参数

若需要设置采样器的自定义参数(如random_state),可传入采样器类,并通过fix_imbalance_kwargs传递参数:

from pycaret.classification import setup
from imblearn.combine import SMOTETomek

setup(
    data=你的数据集,
    target='目标列名',
    fix_imbalance=True,
    fix_imbalance_method=SMOTETomek,
    fix_imbalance_kwargs={'random_state': 2022}
)

内容的提问来源于stack exchange,提问作者Scope

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:18:18