handling missing values for LightGBM model I have read that LightGBM handles missing values defaultly. And there certain parameters to change the consideration of missing values like zero_as_missing etc..,
I have seen some people using negative values (-1, -999) in the place missing values.
So, my question is, which is better 1) leaving it to model to handle or 2) manually replacing the values with negative values?
Thanks in advance
The default behavior allows the missing values to be sent down either branch of a split. Replacing with a negative value that is less than all your data forces the (originally) missing values to take the left branch, and so your model has (slightly) less capacity.  That may be a good or a bad thing, depending on where you land on the bias-variance curve.
So, I think the best answer here is &quot;it depends on your data.&quot;  If your missing values actually behave like lesser values, then encoding them as large negative numbers enforces that, reducing capacity in a probably-beneficial way.  But without digging into exploratory data analysis, or complex imputation methods (MICE), I'd personally stick to the default behavior.