handling missing values for LightGBM model
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.