为了账号安全,请及时绑定邮箱和手机立即绑定

如何抑制CatBoost迭代结果?

如何抑制CatBoost迭代结果?

尚方宝剑之说 2021-04-09 18:15:08
我正在尝试使用CatBoost来拟合二进制模型。当我使用以下代码时,我认为verbose=False可以帮助抑制迭代日志。但事实并非如此。有没有办法避免打印迭代?model=CatBoostClassifier(iterations=300, depth=6, learning_rate=0.1, loss_function='Logloss',         rsm = 0.95,          border_count = 64,          eval_metric =  'AUC',          l2_leaf_reg= 3.5,          one_hot_max_size=30,          use_best_model = True,         verbose=False,         random_seed = 502)model.fit(X_train, y_train,     eval_set=(X_test_filtered, y_test_num),        verbose = False,     plot=True)
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

CatBoost具有几个参数来控制详细程度。这些都是verbosesilentlogging_level

默认情况下,日志记录是冗长的,因此您会在每次迭代中看到损失值。如果希望减少日志记录,则需要使用以下参数之一。不允许同时设置其中两个。

silent有两个可能的值-TrueFalse

verbose也可以是TrueFalse,但也可以是整数。如果它是整数N,则将在第N次迭代中打印出日志记录。

logging_level可以'Silent''Verbose''Info''Debug'

  • 'Silent'表示没有输出到stdout(重要警告除外),并且与silent=True或相同verbose=False

  • 'Verbose'是默认的日志记录模式。与verbose=True或 相同silent=False

  • 'Info' 打印出每次迭代中选择的树。

  • 'Debug' 打印很多调试信息。

您可以在两个地方使用这些参数。第一个是模型创建。第二个是对创建的模型的拟合。如果在创建模型时使用了参数,则在拟合函数中未指定参数的情况下将在拟合过程中使用该参数。

如果在拟合功能中使用参数,则将使用由该参数选择的模式。

就您而言,您似乎遇到了一个错误。下次看到一些错误时,最好的办法是使用GitHub页面上的问题向CatBoost团队报告。该错误应该已经得到修复,因此请尝试升级到最新版本或从源代码构建代码。


查看完整回答
反对 回复 2021-04-20
?
慕沐林林

TA贡献2016条经验 获得超9个赞

设置metric_period=100。它应该工作。


查看完整回答
反对 回复 2021-04-20
  • 2 回答
  • 0 关注
  • 580 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信