Lo siento, pero esto no es un número

Uno de los errores más habituales que he visto a la hora de realizar análisis de datos tiene que ver con un error de concepto básico sobre los tipos de datos. Y esto me preocupa.

El proceso es el siguiente:

  1. Data Scientist abre un .csv con la herramienta que sea.
  2. Selecciona las columnas numéricas, descarta las demás (pista: no sabe qué hacer con ellas).
  3. Utiliza las columnas numéricas (sin normalizar, transformar, ni nada) para realizar distintos análisis.
  4. Saca conclusiones.

Error.

Todos los ficheros de datos a los que os enfrentáis, todos, sin excepción, tienen la misma trampa: números que no son números.

Se trata de índices, códigos y otras etiquetas. Hay códigos de provincia, códigos para tipos de cliente o de modelo de coche. Éstos, en su representación gráfica en un csv son números, sí, pero semánticamente son categorías. O ¿nos atreveríamos a afirmar según esta tabla que Ávila x 2 = Cáceres?, o ¿según ésta que una bicicleta + 8 es un turismo?, ¿es un Mitsubishi la mitad de un Ford? A que no.

Pero empecemos por el principio. Hablemos de tipos de datos. Una representación muy naïve de los tipos de datos estructurados que podemos encontrarnos es:

  • Numéricos:
    • Discreto
    • Contínuo
  • Categóricos:
    • Dicotómico
    • Nominal
    • Ordinal
    • De recuento

Cada uno de los tipos de datos tiene unas propiedades asociadas.

Los números tienen propiedades asociadas, y si tratamos a una variable categórica como si fuera numérica, le estaremos otorgando unas propiedades que no le corresponden.

Desde luego que el camino fácil es el de utilizar únicamente números para realizar análisis. Fácil porque es corto, no porque los resultados sean buenos. Aquel Data Scientist que únicamente utilice librerías y no esté habituado a escribir código, encontrará que tratar con datos categóricos en el modelo es prácticamente imposible (aunque este tipo de datos sirvan para hacer histogramas estupendos). A excepción de algunos casos, utilizando librerías, todos los datos deben ser numéricos para alimentar los modelos.

Y es tan relevante utilizar la cabeza para saber darle significado real y útil a los números que alimentarán los modelos, que descubrir a alguien que utiliza datos categóricos como si fueran números me resulta sorprendente.

Leave a Reply

Your email address will not be published.