I would like to know how normalization affects significant digits. Starting with a dataset where features have wildly different scales and number of digits, I'd like to begin with min-max normalization and cut off insignificant digits. Which should I do first? Here's an example with random data.

Case 0: Starting data set.

[[    24.2890000000000015     32.5955000000000013     81.2960000000000065]
 [  6801.0150000000003274   3900.4432000000001608   3300.7890999999999622]
 [600001.2340000000549480 190001.0450000000128057 670000.6737000000430271]]

These were rounded to 5 decimal places but the representation doesn't 
reflect that perfectly of course.

Applying min-max normalization yields:

[[0.0000000000000000 0.0000123981981898 0.0000850880737021]
 [0.0101148729339684 0.0057855086963038 0.0048904710297620]
 [0.8955195417352746 0.2835573914818911 1.0000000000000000]]

The starting dataset has insignificant digits, so I assume
the normalized set does as well.

Case 1: round to 5 significant digits, then normalize, then use all digits

[[0.00000000000000000000 0.00001239895695263495 0.00008508815926313482]
 [0.01011486071619691930 0.00578545003402369546 0.00489049221666485161]
 [0.89551860037505148782 0.28355611685749604334 1.00000000000000000000]]

Since the data were first rounded to significant digits, I would think all
digits are now significant.  It's a difference in scale, not accuracy of

Case 2: normalize, then round to 5 significant digits

[[0.00000000000000000000 0.00001239800000000000 0.00008508800000000001]
 [0.01011500000000000073 0.00578549999999999984 0.00489050000000000075]
 [0.89551999999999998270 0.28355999999999997874 1.00000000000000000000]]
 But perhaps I'm wrong, and the numbers should be trimmed after normalization?

The differences between the Cases 0 and 1 are much more apparent with thousands of rows and columns and greater differences in scale. They might be small differences but that matters when the range is small...

  • $\begingroup$ I lost you at the outset: the precision doesn't change when normalizing unless you are dividing by, or creating, values close to the limits of double-precision computing (around $10^{\pm 303}$). Could you therefore explain what you mean by "precision"? $\endgroup$
    – whuber
    Mar 12 '20 at 16:45
  • $\begingroup$ Sorry, I do tend to over complicate things. I simplified and rewrote the question with a concrete example. Thanks! $\endgroup$
    – jml-happy
    Mar 13 '20 at 21:09
  • $\begingroup$ There's something strange about your example, because it is obvious the original data were not rounded to five significant figures: sig figs are not interchangeable with decimal places! $\endgroup$
    – whuber
    Mar 13 '20 at 22:04
  • $\begingroup$ @whuber well that's kind of the point. I'm starting with data that hasn't been adjusted for significant figures, and needs to be normalized. I just rounded the example to make the effect of floating point representation, and the increase in digits after normalization, clearer. The question is "round then normalize" or "normalize then round"? $\endgroup$
    – jml-happy
    Mar 14 '20 at 9:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.