PyCaret compare_models报错TypeError: format()不支持precision参数
解决PyCaret compare_models()返回空列表及TypeError问题
可能的原因与解决方案
- 检查数据集状态:确认数据集无极端缺失值、无全常数特征、标签类别无极端不平衡(如某类占比99%+)。可通过以下代码快速排查:
import pandas as pd # 查看缺失值统计 print(df.isnull().sum()) # 查看特征唯一值数量 print(df.nunique()) # 查看标签分布 print(df['target_column'].value_counts(normalize=True)) - 降级PyCaret至稳定版:3.0.0.rc9为候选版本,存在未知bug风险,尝试切换到2.x稳定版:
pip install pycaret==2.3.10 - 排除冲突模型:部分模型可能与当前环境存在兼容性问题,运行时排除这些模型:
from pycaret.classification import * clf = setup(data=df, target='target_column') # 示例排除catboost和lightgbm,可根据实际情况调整 compare_models(exclude=['catboost', 'lightgbm']) - 指定明确评估指标:错误提示指向指标格式化问题,手动指定无冲突的指标列表:
compare_models(metrics=['accuracy', 'auc', 'recall']) - 重置PyCaret会话:清除残留配置,重新初始化环境:
reset_session() clf = setup(data=df, target='target_column', session_id=123) compare_models()
额外排查点
- 检查依赖库版本:PyCaret 2.x需搭配scikit-learn 0.24.x~1.0.x版本,避免版本过高或过低引发冲突。
- 尝试干净虚拟环境:在全新虚拟环境中重新安装PyCaret及依赖,排除全局环境干扰。
内容的提问来源于stack exchange,提问作者Raha Moosavi
相关产品推荐
相关产品推荐

