import numpy as np
from sklearn.preprocessing import MinMaxScaler

# Dati di esempio: due feature con scale molto diverse tra loro
# Colonna 1: valori piccoli (1-5), Colonna 2: valori grandi (900-1800)
dati = np.array([
    [1, 1000],
    [2, 1500],
    [3, 1200],
    [4, 1800],
    [5, 900]
])

# Creazione dello scaler con range di normalizzazione esplicito [0, 1]
scaler = MinMaxScaler(feature_range=(0, 1))

# fit: calcola min e max per colonna
# transform: applica la formula (x - min) / (max - min)
dati_normalizzati = scaler.fit_transform(dati)

print("Dati originali:\n", dati)
print("\nDati normalizzati:\n", dati_normalizzati)

# Verifica: è possibile tornare ai valori originali grazie ai parametri
# appresi durante il fit (min e max di ogni colonna)
dati_originali_ricostruiti = scaler.inverse_transform(dati_normalizzati)
print("\nDati ricostruiti (inverse_transform):\n", dati_originali_ricostruiti)