How to scale outputs from AutoEncoder from multiple models? I have a problem for which I have not been able to find any answers in my search so far. 

BACKGROUND

I am working on an anomaly detection problem on machines utilising an auto-encoder. I am building a model file per machine because the machines' temporal behaviour varies quite a lot.

I have 5 features:


Numerical integer ranging between 0 and x (x varies per machine)
The other 4 features are categorical (After trying LabelEncoding, my architecture prefers One-Hot encoding)


I have tried to scale the numerical feature using Normalisation (MinMaxScaler and StandardScaler) which did not yield very good results at all.

As an alternate to scaling the inputs - I decided to scale the outputs using MinMaxScaler from scikit. This is so that I can have 1 generic threshold I can apply across the different models to identify anomalies.

Although this has yielded the best results so far - in practice, the outputs become too polarised to either the 0 or the 1 and consequently I am missing outliers that I shouldn't be. 

PROBLEM

What scaling technique(s) can I use on the output from my auto-encoder such that I can apply 1 generic threshold across all models to identify anomalies?
I always recommend to use StandardScaler() rather than MinMaxScaler(). The reason is that the latter is too sensitive to outliers. Imagine shrinking the given vector in the [0, 1] interval:
[1, 2, 3, 4, 999]

Most of your data would be squeezed in a tiny subspace of the [0, 1] interval, causing absurd compression. The problem doesn't exist if you use the StandardScaler(). This looks particularly relevant given that you're trying to detect abnormal observations.
(I would use min-max scaling only if I'm sure that a given variable is bounded within a given range of values.)
But most importantly: What are the problems of your output? As far as we know, they might not be due to scaling.

UPDATE:
Lately, a scaling technique that I found very effective is robust min-max scaling. It works just like a min-max, but instead of being done between min and max value, it is done between min and a certain percentile (usually in 95-99). That's very effective when your dataset suffers from very few (but influent) outliers. This method makes sure that 95-99% of your dataset is properly scaled in [0,1], while few outliers take reach out-of-range values.