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)
CatBoostには、詳細度を制御するいくつかのパラメーターがあります。それらはverbose
、silent
およびlogging_level
です。
デフォルトではロギングは冗長であるため、すべての反復で損失値が表示されます。ロギングを減らしたい場合は、これらのパラメーターのいずれかを使用する必要があります。 2つ同時に設定することはできません。
silent
には、True
とFalse
の2つの値があります。
verbose
はTrue
およびFalse
にすることもできますが、整数にすることもできます。整数Nの場合、ロギングはN回の反復ごとに出力されます。
logging_level
は'Silent'
、'Verbose'
、'Info'
、'Debug'
のいずれかになります:
'Silent'
は、(重要な警告を除いて)stdoutに出力しないことを意味し、silent=True
またはverbose=False
と同じです。'Verbose'
はデフォルトのロギングモードです。verbose=True
またはsilent=False
と同じです。'Info'
は、反復ごとに選択されるツリーを出力します。'Debug'
は、多くのデバッグ情報を出力します。
これらのパラメーターを使用できる場所は2つあります。 1つ目はモデルの作成です。 2つ目は、作成したモデルのフィッティングです。モデルの作成時にパラメーターを使用した場合、フィット関数のパラメーターが指定されていなければ、フィット中にそのパラメーターが使用されます。
フィット関数でパラメーターを使用する場合、このパラメーターで選択されたモードが使用されます。
あなたの場合、バグに遭遇したようです。次にバグが見つかったときの最良の方法は、GitHubページの問題を使用してCatBoostチームに報告することです。このバグはすでに修正されているはずなので、最新バージョンにアップグレードするか、ソースからコードをビルドしてください。
セットする metric_period=100
。うまくいくはずです。