In python API of LGBMClassifier, the constructor takes parameters
first_metric_only. Their descriptions are as follows:
first_metric_only 🔗︎, default = false, type = bool set this to true, if you want to use only the first metric for early stopping
metric 🔗︎, default = "", type = multi-enum, aliases: metrics, metric_types metric(s) to be evaluated on the evaluation set(s)
fit method also takes an argument
eval_metric whose description is:
eval_metric (string, callable, list or None, optional (default=None)) – If string, it should be a built-in evaluation metric to use. If callable, it should be a custom evaluation metric, see note below for more details. If list, it can be a list of built-in metrics, a list of custom evaluation metrics, or a mix of both. In either case, the metric from the model parameters will be evaluated and used as well. Default: ‘l2’ for LGBMRegressor, ‘logloss’ for LGBMClassifier, ‘ndcg’ for LGBMRanker.
It is not clear what they mean by
first metric only. I have sent in
['auc','binary'] as value to argument
first_metric_only set to
True and yet it is using 'binary' for early stopping as well. I have always tried other combinations but I am not able to make clear what would happen in different scenarios
Can somebody please tell me what the exact interplay between these parameters is and what is meant by 'first metric'?