D A T A M A N A G E M E N T

Cargando...

Durante nuestros proyectos de ciencia de datos afrontamos los siguientes procesos de vitales, como por ejemplo ser:

  • Carga y limpieza de datos.
  • Análisis exploratorio de los datos.
  • Analítica predictiva y búsqueda de mejor modelo predictivo.

Los dos primeros procesos son muy importantes porque en ellos determinamos la forma estadística de nuestros datos y cómo vamos a afrontar el problema con el conjunto de variables potencialmente más interesantes o significativas.

Sin embargo, muchas veces no conocemos como afrontar un primer análisis predictivo. Si nuestro objetivo es minimizar el error que causa nuestro modelo, a priori no sabemos que clase de modelo podría funcionar de forma consistente.

Objetivo

Este artículo pretende mostrar cómo orientar la programación orientada a objetos con python 3 para facilitar las labores de realizar predicciones y aplicaciones de Machine Learning sobre nuestros datos.

La creación de clases nos van a permitir evitar la duplicidad de código y romper con la metodología que circula en las universidades e internet, que consiste en aglutinar bloques de código en todo nuestro proyecto de ciencia de datos. Cuando el código crece mucho cada vez es más difícil mejorarlo y mantenerlo si no tenemos un orden sobre nuestro trabajo.

Este tipo prácticas solo harán que perdamos el foco de nuestro análisis. Con ello dispondremos siempre de una clase que podremos alimentar para que crezcan en complejidad los modelos en función del problema.

Todo ello sin perder de vista la analítica de datos y las conclusiones de nuestro estudio.

Con nuestras clases podremos realizar lo siguiente:

  • Calcular el error de predicción(RMSE) para todos los modelos y observar que modelo funciona mejor.
  • Para aquellos modelos que mejor se comportan, realizar un estudio en profundidad y utilizar diversos parámetros. Por ejemplo, para KNN estudiar como se comporta el RMSE cuando aumentamos el número de vecinos en el algoritmo.
  • Establecer una metodología básica, ordenada y eficiente de trabajo, sin tener que recurrir a duplicar código.

CLASES

Todos mis modelos: esta clase computa, estima todos los modelos, ejecuta las predicciones sobre el conjunto de test y además nos calculará el RMSE para todos los modelos.

Esto nos ayudará a saber que tipologia de modelo se adapta mejor a nuestros datos e intentar trabajar sobre métodos que presenten un error de test más bajo.

Mis_modelos: está clase tiene un método para cada modelo, aquí es donde trabajamos en profundidad el modelo ya que posteriormente ejecutaremos analíticas con parámetros sobre el en el script principal.


Ahora aplicaremos todas nuestras clases en el script principal main.py:

Para este ejemplo trataremos un problema de regresión con un conjunto de datos que está incluido en sklearn:

Resultado de nuestra clase Muchos_Modelos:

Ahora podemos centrarnos en profundizar en lo siguientes modelos:

  • Knn
  • Árbol
  • Bosque Aleatorio

Ahora por ejemplo podemos combinar la búsqueda de diversos parámetros comparando la aplicación del bootstrap en nuestro modelo o no.

Los resultados son lo siguientes:

Si te ha parecido útil y tienes cualquier consulta no dudes en ponerte en contacto con el correo info@datamanagement.es o bien usando el formulario de contacto que se encuentra en la página web http://datamanagement.es/contacto.php 

Enlaces de interés

Virgen del pilar nº4, ático H

03330 Crevillente (Alicante)