sql >> Base de Datos >  >> RDS >> Mysql

Cómo normalizar la minería de datos Min Max de Mysql en Python

Aquí hay una consulta SQL que debería ayudarlo a comenzar (suponiendo que desee calcularla por columna):

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

Probé esta consulta en sqlite3, no en MySQL. No es necesariamente óptimo, pero intuitivamente sigue la fórmula. Aviso, el over convierte las funciones agregadas min / max en funciones de ventana, lo que significa que miran toda la columna, pero el resultado se repite en cada fila.

Todo

Todavía necesitarías:

  • envíe la consulta MySQl a través de Python
  • repita el mismo código para cada columna
  • asigne un nombre a cada columna
  • asigne la tabla resultante a un esquema (lo más probable)
  • manejar la división por 0 en caso de que el máximo y el mínimo de una columna sean iguales