from typing import Callable


def make_normalization_function(min_value: float, max_value: float, scope=(0, 1)) -> Callable:
    """
    Minimax normalization

    :param min_value: Min value in data
    :param max_value: Max value in data
    :param scope: Normalization range
    :return: normalization function
    """
    def normalize(x):
        return scope[0] + (x - min_value) / (max_value - min_value) * (scope[1] - scope[0])
    return normalize