我正在尝试使用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具有几个参数来控制详细程度。这些都是verbose
,silent
和logging_level
。
默认情况下,日志记录是冗长的,因此您会在每次迭代中看到损失值。如果希望减少日志记录,则需要使用以下参数之一。不允许同时设置其中两个。
silent
有两个可能的值-True
和False
。
verbose
也可以是True
和False
,但也可以是整数。如果它是整数N,则将在第N次迭代中打印出日志记录。
logging_level
可以'Silent'
,'Verbose'
,'Info'
和'Debug'
:
'Silent'
表示没有输出到stdout(重要警告除外),并且与silent=True
或相同verbose=False
。'Verbose'
是默认的日志记录模式。与verbose=True
或 相同silent=False
。'Info'
打印出每次迭代中选择的树。'Debug'
打印很多调试信息。
您可以在两个地方使用这些参数。第一个是模型创建。第二个是对创建的模型的拟合。如果在创建模型时使用了参数,则在拟合函数中未指定参数的情况下将在拟合过程中使用该参数。
如果在拟合功能中使用参数,则将使用由该参数选择的模式。
就您而言,您似乎遇到了一个错误。下次看到一些错误时,最好的办法是使用GitHub页面上的问题向CatBoost团队报告。该错误应该已经得到修复,因此请尝试升级到最新版本或从源代码构建代码。
添加回答
举报
0/150
提交
取消