CatBoost设置plot=True后训练验证误差学习曲线可视化不显示问题
CatBoost Jupyter Notebook可视化不显示问题修复方案
- 安装必要依赖ipywidgets,CatBoost的交互式可视化基于该组件实现,执行安装命令:
pip install ipywidgets - 启用Jupyter Notebook的widgets扩展,执行命令后重启整个Jupyter服务:
jupyter nbextension enable --py widgetsnbextension - 检查Chrome浏览器拦截类插件,广告拦截、脚本拦截、隐私防护类插件都会阻止CatBoost动态绘图脚本加载,临时禁用这类插件后刷新页面重试
- 升级CatBoost到最新稳定版本,旧版本存在已知的可视化兼容bug,升级命令:
pip install --upgrade catboost - 上述方案均无效时可使用手动绘图替代方案,关闭fit方法的plot参数后,提取训练日志自行绘制学习曲线,示例代码如下:
# 训练阶段关闭内置plot model.fit( X_train, y_train, cat_features=categorical_features_indices, eval_set=(X_val, y_val), verbose=False ) # 提取评估指标绘制曲线 import matplotlib.pyplot as plt evals_result = model.get_evals_result() # 若使用自定义评估指标,将下方的Logloss替换为对应指标名称即可 plt.plot(evals_result['learn']['Logloss'], label='训练集误差') plt.plot(evals_result['validation_0']['Logloss'], label='验证集误差') plt.xlabel('迭代次数') plt.ylabel('误差值') plt.legend() plt.show()
*注:如果设置了多个验证集,需要根据实际eval_set的顺序调整validation_0对应的索引。
内容的提问来源于stack exchange,提问作者AnnaMos
相关产品推荐
相关产品推荐

