Many times in data that stems from transaction systems (OLTP), a categorical type of value is included in a numeric field. For example, if you have the date of some event occurring, if the event has never occurred, there will be a placeholder date (e.g. 1900-01-01).
In my current analysis, I have a days since last event, where the majority of records have 999 to indicate "never occurred".
I have been unable to find any research/information on the best way to handle this type of value. Treating these values like null values and using some sort of imputation makes no sense at all, since the values actually have a meaning; using other records to estimate what these fields should be would totally remove the information to be gained from these values.
However, I am afraid that using any distance based ML algorithm would be thrown off by these usually extreme values.
My current thought is to create additional dummy variables for y/n if the even occurred or not, but do not know what to do with these extreme values in the original field. Any suggestions or research I could read would be appreciated.