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

PyCaret异常检测调用compare_models()提示无属性或未定义报错如何解决?

报错原因
  • 本质问题:PyCaret的pycaret.anomaly(异常检测)模块原生不存在compare_models()方法。compare_models()是分类、回归等有监督学习模块的专属功能,用于批量对比有监督模型的效果,异常检测属于无监督任务,官方没有实现对应的批量对比接口,因此直接调用会触发AttributeError。
  • NameError的触发原因:你没有先初始化异常检测工作环境,也没有从对应模块导入相关函数,就算是模块实际存在的方法,直接调用全局的compare_models()也会找不到变量。
解决方法
  1. 先按照异常检测模块的标准流程初始化环境:
from pycaret.anomaly import *
# 替换data参数为你的实际数据集
exp = setup(data=你的数据集, session_id=123)
  1. 要实现多异常检测模型对比的需求,需要手动遍历支持的模型,分别训练后汇总指标,示例代码如下:
# 查看当前版本支持的所有异常检测模型
print(models())

# 手动批量训练对比示例
target_models = ['iforest', 'knn', 'lof', 'svm']
compare_result = []
for model_id in target_models:
    # 训练单个模型
    current_model = create_model(model_id)
    # 生成预测结果,可根据自身需求自定义计算需要的评估指标加入对比结果
    pred_result = predict_model(current_model, data=你的数据集)
    # 此处补充你的指标计算逻辑,将结果存入compare_result汇总即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:54:04