Mysql
 sql >> Database >  >> RDS >> Mysql

Come normalizzare il data mining Min Max da Mysql in Python

Ecco una query SQL che dovrebbe iniziare (supponendo che tu voglia calcolarla per colonna):

   create table normalize as
     select
       (RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
     from test;

Ho testato questa query in sqlite3, non in MySQL. Non è necessariamente ottimale, ma segue intuitivamente la formula. Avviso, il over trasforma le funzioni di aggregazione min/max in funzioni di finestra, il che significa che esaminano l'intera colonna, ma il risultato viene ripetuto su ogni riga.

Cose da fare

Dovresti ancora:

  • invia la query MySQl tramite Python
  • Ripetere lo stesso codice per ogni colonna
  • assegna un nome a ciascuna colonna
  • assegna la tabella risultante a uno schema (molto probabilmente)
  • gestire la divisione per 0 nel caso in cui una colonna max e min siano uguali