问题
I have an array of value (percentages) scaled from 0 to 100:
[34, 34, 84, 28, 56, 56, 0, 0, 100]
I know that these values have been scaled with a MinMax scaler:
V = (actual - min) / (max - min)
And then multiplied by 100 to have the percentages above. I didn't perform this transformation so I don't have actual, min, or max. But I have V.
I wanted to use numpy.linalg.solve
, but I obviously can't express V as a linear/independent combination of actual, min, max.
Is it a known problem?
回答1:
There is no way you can obtain the actual numbers back. Consider the following lists:
actuals1 = [34, 34, 84, 28, 56, 56, 0, 0, 100]
actuals2 = [3.4, 3.4, 8.4, 2.8, 5.6, 5.6, 0, 0, 10]
actuals3 = [340, 340, 840, 280, 560, 560, 0, 0, 1000]
actuals4 = [17, 17, 42, 14, 28, 28 0, 0, 50]
If you perform your MinMax scaling, you obtain same result with all of them so there is no unique result. That is because you obtain a parametric solution due to your undetermined system (as mentioned in Reda Drissi's comment), so any multiply of a solution is a valid solution.
来源:https://stackoverflow.com/questions/56000914/revert-minmax-scaling