如何抑制CatBoost迭代结果?

我正在尝试使用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)

尚方宝剑之说
浏览 581回答 2
2回答

慕后森

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团队报告。该错误应该已经得到修复,因此请尝试升级到最新版本或从源代码构建代码。

慕沐林林

设置metric_period=100。它应该工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python