Pycaret.regression.compare_models:评价table既未返回也未显示

Pycaret.regression.compare_models: Evaluation table neither returned nor shown

pycaret 是一个非常紧凑的工具,用于比较我想用于模型选择的模型。不幸的是,compare_models 方法并没有显示您随处可见的典型 output table。我在 PyCharm 中使用 pycaret 而不是 Jupyter Notebook,这似乎是典型的方法。我确实得到了最好的模型作为 return 值,但我真正的目标是概述 table。参数 silent 设置为 True 还是 False 似乎也没有什么区别,除了被要求确认派生数据类型是否正确。

非常感谢!

系统: Python 3.6 pycaret 2.3 中央操作系统 7 PyCharm 2020.1 社区版

我的代码:

    regression.setup(data=ml_df,
                     target='occupation',
                     n_jobs=6,
                     categorical_features=['cluster', 'vacation', 'long_weekend', 'month', 'hour', 'weekday'],
                     numeric_features=['temperature', 'precipitation'],
                     silent=False
                     )
    best_regression_models = regression.compare_models()

    categorisation = [
        [-0.1, 'empty'],
        [0.01, 'partial'],
        [0.99, 'full']
    ]
    ml_df['occupation'] = modelling_utils.convert_number_to_categorical(ml_df['occupation'], categorisation)
    classification.setup(data=ml_df,
                         target='occupation',
                         n_jobs=6,
                         categorical_features=['cluster', 'vacation', 'long_weekend', 'month', 'hour', 'weekday'],
                         numeric_features=['temperature', 'precipitation'],
                         fix_imbalance=True,
                         silent=False)
    best_classification_models = classification.compare_models()

完整输出有点冗长,保存here

编辑:代码在 Jupyter Notebook 中按预期工作

运行 来自 terminal/command 行的 PyCaret 与来自 Jupyter notebook 的 运行 相比具有不同的行为。在您的情况下,如果您想显示比较输出 table,请在 compare_models() 函数调用后添加这两行:

..
best_regression_models = regression.compare_models()


regression_results = pull()
print(regression_results)

pull() 函数还将 return 最后一个分数网格与其他训练函数,例如 create_model()。目前此功能仅适用于回归和分类模块。

参考:https://pycaret.org/pull/

已更新 参考资料: