-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug fix for first_metric_only on earlystopping #2127
Conversation
1. Order of `metric` is not fixed even if it is defined by list. So explicitly indicating which metric is used on early stopping. 2. Due to introducins `eval_train_metric` feature, then the first metric was train score og the metrics, so it doess not appropriate for early stopping.
Hi @matsuken92 ! |
the tests failed. @matsuken92 @StrikerRUS any ideas? |
The failure case of the test is that metric is default metric (None, "None" , "" and so on.) I'm now considering how to handle this case, so please wait. |
I think the first_metric_only should be used for all validation data (including training set when eval_train_metric is set). That is, the first metrics of all validation data should be considered in early stopping, not only the first metric of first validation data. refer to #2049 (comment) |
@guolinke Sorry, but I'm confused a little bit. Why need it to check early stopping on training data?
|
@StrikerRUS training data will not meet early stopping condition, as it will be always better. |
@StrikerRUS we can keep them. although it actually checks the training metric... |
@matsuken92 any news ? the v2.2.4 release (#2138) is blocked by this PR. |
Really sorry for my late response. |
Current status:
|
@matsuken92 |
@guolinke Thank you for your advice. |
@matsuken92 Maybe you can create new PR for |
Superseded by #2209. |
metric
list is not fixed even if it is defined by list. So explicitly indicating which metric is used on early stopping.eval_train_metric
feature, if the feature is enabled, then the first metric became train score of the metrics, so it does not appropriate for early stopping. So until the specified metrics of validation is coming, skipping to check early stopping in the loop.