Home A Functional Inspired by Min-Max Normalization
Post
Cancel

A Functional Inspired by Min-Max Normalization

For a function $F: \mathbb{R}^n \mapsto \mathbb{R}$ we can consider the functional

\[\frac{F(x) - F(a)}{F(b) - F(a)}\]

where \(a = \arg\min_x F(x)\) and \(b = \arg\max_x F(x)\). You may recognize this to be the form of min-max normalization. If we restrict $F$ to be a cumulative distribution function then this is also the form of a truncated probability distribution. Both of these notions are useful for certain kinds of modelling problems. For recreation rather than utility, I generalize this functional below.

We can consider a more general functional

\[g \left( f\left( F(x), F(a) \right), f\left( F(b), F(a) \right) \right)\]

where $g$ and $h$ are suitably-defined binary operators.

Taking common operations including addition, subtraction, multiplication, division, exponentiation, and logarithms, I’ve tabulated various choices below.

fgFunctional
addadd$2 F{\left(a \right)} + F{\left(b \right)} + F{\left(x \right)}$
addsubtract$- F{\left(b \right)} + F{\left(x \right)}$
addmult$\left(F{\left(a \right)} + F{\left(b \right)}\right) \left(F{\left(a \right)} + F{\left(x \right)}\right)$
adddivide$\frac{F{\left(a \right)} + F{\left(x \right)}}{F{\left(a \right)} + F{\left(b \right)}}$
addexp$\left(F{\left(a \right)} + F{\left(x \right)}\right)^{F{\left(a \right)} + F{\left(b \right)}}$
addlog$\frac{\log{\left(F{\left(a \right)} + F{\left(b \right)} \right)}}{\log{\left(F{\left(a \right)} + F{\left(x \right)} \right)}}$
subtractadd$- 2 F{\left(a \right)} + F{\left(b \right)} + F{\left(x \right)}$
subtractsubtract$- F{\left(b \right)} + F{\left(x \right)}$
subtractmult$\left(F{\left(a \right)} - F{\left(b \right)}\right) \left(F{\left(a \right)} - F{\left(x \right)}\right)$
subtractdivide$\frac{F{\left(a \right)} - F{\left(x \right)}}{F{\left(a \right)} - F{\left(b \right)}}$
subtractexp$\left(- F{\left(a \right)} + F{\left(x \right)}\right)^{- F{\left(a \right)} + F{\left(b \right)}}$
subtractlog$\frac{\log{\left(- F{\left(a \right)} + F{\left(b \right)} \right)}}{\log{\left(- F{\left(a \right)} + F{\left(x \right)} \right)}}$
multadd$\left(F{\left(b \right)} + F{\left(x \right)}\right) F{\left(a \right)}$
multsubtract$\left(- F{\left(b \right)} + F{\left(x \right)}\right) F{\left(a \right)}$
multmult$F^{2}{\left(a \right)} F{\left(b \right)} F{\left(x \right)}$
multdivide$\frac{F{\left(x \right)}}{F{\left(b \right)}}$
multexp$\left(F{\left(a \right)} F{\left(x \right)}\right)^{F{\left(a \right)} F{\left(b \right)}}$
multlog$\frac{\log{\left(F{\left(a \right)} F{\left(b \right)} \right)}}{\log{\left(F{\left(a \right)} F{\left(x \right)} \right)}}$
divideadd$\frac{F{\left(b \right)} + F{\left(x \right)}}{F{\left(a \right)}}$
dividesubtract$\frac{- F{\left(b \right)} + F{\left(x \right)}}{F{\left(a \right)}}$
dividemult$\frac{F{\left(b \right)} F{\left(x \right)}}{F^{2}{\left(a \right)}}$
dividedivide$\frac{F{\left(x \right)}}{F{\left(b \right)}}$
divideexp$\left(\frac{F{\left(x \right)}}{F{\left(a \right)}}\right)^{\frac{F{\left(b \right)}}{F{\left(a \right)}}}$
dividelog$\frac{\log{\left(\frac{F{\left(b \right)}}{F{\left(a \right)}} \right)}}{\log{\left(\frac{F{\left(x \right)}}{F{\left(a \right)}} \right)}}$
expadd$F^{F{\left(a \right)}}{\left(b \right)} + F^{F{\left(a \right)}}{\left(x \right)}$
expsubtract$- F^{F{\left(a \right)}}{\left(b \right)} + F^{F{\left(a \right)}}{\left(x \right)}$
expmult$F^{F{\left(a \right)}}{\left(b \right)} F^{F{\left(a \right)}}{\left(x \right)}$
expdivide$F^{- F{\left(a \right)}}{\left(b \right)} F^{F{\left(a \right)}}{\left(x \right)}$
expexp$\left(F^{F{\left(a \right)}}{\left(x \right)}\right)^{F^{F{\left(a \right)}}{\left(b \right)}}$
explog$\frac{\log{\left(F^{F{\left(a \right)}}{\left(b \right)} \right)}}{\log{\left(F^{F{\left(a \right)}}{\left(x \right)} \right)}}$
logadd$\frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(x \right)} \right)}} + \frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(b \right)} \right)}}$
logsubtract$\frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(x \right)} \right)}} - \frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(b \right)} \right)}}$
logmult$\frac{\log{\left(F{\left(a \right)} \right)}^{2}}{\log{\left(F{\left(b \right)} \right)} \log{\left(F{\left(x \right)} \right)}}$
logdivide$\frac{\log{\left(F{\left(b \right)} \right)}}{\log{\left(F{\left(x \right)} \right)}}$
logexp$\left(\frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(x \right)} \right)}}\right)^{\frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(b \right)} \right)}}}$
loglog$\frac{\log{\left(\frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(b \right)} \right)}} \right)}}{\log{\left(\frac{\log{\left(F{\left(a \right)} \right)}}{\log{\left(F{\left(x \right)} \right)}} \right)}}$

Note that notation such as $F^2(a)$ and $F^{F(a)}(b)$ denote exponentiation, not powers of function composition.

If you are interested in tinkering with your own choice of functions, here is the source code to generate the above table.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from itertools import product

import sympy as sp
import pandas as pd

x = sp.Symbol('x')
b = sp.Symbol('b')
a = sp.Symbol('a')
F = sp.Function('F')
F_x = F(x)
F_b = F(b)
F_a = F(a)

ops = {
    
    'add' : lambda x,y: x + y,
    'subtract': lambda x,y: x - y,
    'mult' : lambda x,y: x * y,
    'divide': lambda x,y: x / y,
    'exp': lambda x,y: x ** y,
    'log': lambda x,y: sp.log(y, x)
    }

results = []
for f,g in product(ops, ops):
    result = ops[g](ops[f](F_x, F_a), ops[f](F_b, F_a))
    result = result.simplify()
    results.append([f, g, f'${sp.latex(result)}$'])

df = pd.DataFrame(results, columns=['f', 'g', 'Functional'])
print(df.to_markdown(index=False))

At a glance it may appear that our original functional is absent in the table, but noting that

\[\frac{F{\left(a \right)} - F{\left(x \right)}}{F{\left(a \right)} - F{\left(b \right)}} = \frac{-1}{-1} \frac{F(x) - F(a)}{F(b) - F(a)}\]

reveals that SymPy produced the same result but with a distinct expression.

It is easy to confirm that not all of the functionals I have tabulated above will provide a normalization onto the interval $[0,1]$. Because this and other properties may not be preserved, one might regard this as an “unnatural generalization”.

This post is licensed under CC BY 4.0 by the author.

What Are Nonparametric Statistics?

A Sum Rule For Silviculture Surveys