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

CatBoost拟合绘图是否支持暗黑模式?如何配置实现?

实现CatBoost拟合图暗黑模式的方法

CatBoost内置的plot=True生成的拟合图确实没有直接的暗黑模式配置选项,不过可以通过手动提取训练过程的评估数据,用Matplotlib/Seaborn重新绘制的方式,复用你已经配置好的暗黑样式。

步骤1:关闭内置绘图,保存训练日志

修改fit方法参数,关闭自动绘图并保存训练评估结果:

from catboost import CatBoostRegressor, Pool

train_dataset = Pool(X_train,y_train)
test_dataset  = Pool(X_test,y_test)

model = CatBoostRegressor()
# 关闭内置绘图,保留训练日志
model.fit(
    X=train_dataset,
    eval_set=test_dataset,
    plot=False,
    verbose=False  # 可选,关闭控制台冗余日志
)

# 提取训练过程的评估数据
history = model.get_evals_result()

步骤2:用Matplotlib手动绘制拟合图

基于提取的日志数据,复用你已配置的暗黑样式绘制训练曲线:

import seaborn as sns
import matplotlib.pyplot as plt

# 保留你已有的暗黑模式配置
sns.set(style="darkgrid", context="talk")
plt.style.use("dark_background")
plt.rcParams.update({"grid.linewidth":0.5, "grid.alpha":0.5})

# 提取训练/测试集的损失值(替换为你的模型实际损失函数,如MAE/Logloss等)
train_loss = history['learn']['RMSE']
test_loss = history['validation']['RMSE']
epochs = range(1, len(train_loss)+1)

# 绘制曲线
plt.figure(figsize=(10,6))
plt.plot(epochs, train_loss, label='训练集损失', linewidth=2)
plt.plot(epochs, test_loss, label='测试集损失', linewidth=2)
plt.xlabel('迭代次数')
plt.ylabel('损失值')
plt.title('CatBoost训练损失曲线')
plt.legend()
plt.grid(True)
plt.show()

关键说明

  • 可通过model.get_params()['loss_function']查看模型当前使用的损失函数,将代码中的RMSE替换为对应名称即可匹配你的训练任务。
  • 这种方式完全遵循你已配置的Matplotlib暗黑样式,所有图表元素(背景、网格、线条颜色)都会自动适配暗黑模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:10:35