• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • JavaScript
  • Excel

Integración continua para la ciencia de datos

enero 21, 2022 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 5 minutos

En los grandes proyectos de ciencia de datos aparecen problemas similares a los de los grandes desarrollos de software. Uno de ellos es la necesidad de integrar en una única solución el trabajo de todos los miembros del equipo. Para ello una de las técnicas más empleadas en desarrollo de software es la integración y la entrega continuas (CI/CD). Veamos a continuación algunas de las ventajas que nos puede aportar el uso de integración continua para la ciencia de datos.

¿Qué es integración continua?

La integración continua (CI, del inglés “Continuous Integration”) es unas metodologías de las más utilizadas y probadas actualmente en el desarrollo de software. Especialmente en los proyectos donde, debido a su gran tamaño, es necesario utilizar un enfoque de construcción modular. Donde diferentes equipos de trabajo desarrollan y prueban independientemente el funcionamiento de cada uno de los módulos, generalmente mediante el uso de pruebas automatizadas, antes de su integración.

Posteriormente, se conectan cada uno de los módulos y se prueba el funcionamiento de estos en conjunto. En lo que se denomina la fase de integración. Algo que al aplicar CI se realiza de una forma completamente automatizada. Facilitando la identificación temprana de los problemas o incompatibilidades que pueden introducir en la solución final cambios introducidos en un módulo, pero que no afectan al funcionamiento del propio módulo. Permitiendo solucionar estos de una forma casi inmediata. Evitando en muchos casos incluso su despliegue en producción. Lo que, en los casos en los que exista una cobertura completa de pruebas, permite estar seguro de que cualquier problema debido a un cambio se podrá identificar de forma casi instantánea.

¿Qué es entrega continua?

Por entrega continua (CD, del inglés “Continuous Delivery”) se hace referencia al proceso de poner en producción los cambios de la solución de forma automatizada. Lo que se suele realizar una vez la fase de CI finaliza con éxito. Para las aplicaciones de escritorio que se instalan en ordenadores o móviles, el despliegue automático puede ser algo complicado. Por lo que no suele ser habitual. Pero no así para las ubicadas en servidores, en las que es posible implementar cambios y actualizaciones de forma automática y de una manera completamente transparente para los usuarios. Permitiendo también revertir de una manera sencilla aquellos cambios que incluyan problemas.

Publicidad


Aplicación de la integración continua para la ciencia de datos

El desarrollo de un modelo complejo en el ámbito de la ciencia de datos requiere realizar un proceso similar al desarrollo de software. En el que diferentes perfiles (ingenieros de datos, expertos en aprendizaje automático y especialistas en visualización) colaboran desarrollando diferentes componentes que deben ser integrados. Por lo que, en estos casos, también es necesario un proceso de integración. Donde las diferentes componentes desarrolladas por cada uno de los integrantes en el proyecto deben ser integradas. En lo que las metodologías CI/CD pueden ser de gran ayuda.

Aunque, antes de continuar, es importante recordar que existen importantes diferencias entre el desarrollo de software y la ciencia de datos. Mientras que, por un lado, en el desarrollo de software lo que se crea es una aplicación, siendo el producto entregado básicamente el código que se ha escrito durante la realización del proyecto. En ciencia de datos lo que se crea son procesos complejos que operan sobre conjuntos de datos cuyo resultado es una predicción, para lo que habitualmente se utilizan diferentes familias de algoritmos estándares. Por lo que el producto entregado no es la implementación en detalle de los algoritmos (para lo que ya suelen existir librerías ampliamente probadas), sino que son los pasos y parámetros necesarios para llegar a la predicción.

Reentrenamiento de los modelos

Otra diferencia importante es el requisito adicional que existe en los despliegues de ciencia de datos: ser capaz de monopolizar de forma continua el rendimiento de los modelos para identificar el momento en el que estos pierden su eficacia. Detectando así cuando estos han de ser estrenados. Lo que además es una parte crucial del éxito de los despliegues y puede ser fácilmente automatizable.

En un desarrollo de software no es necesario actualizar los despliegues hasta que se amplían el alcance de la solución o se soluciona algún error existente. Pero para los modelos de ciencia de datos esto no es así. Debido a que, en la mayoría de los casos, posiblemente sea peor tener desplegado un modelo que realiza predicciones erróneas debido a que el entorno ha cambiado que no disponer de un modelo. Ya que la existencia de los modelos puede crear una sensación de que se están optimizando los objetivos de negocio, aunque esto no sea así. No hay más que pensar en el caso de un modelo de detección de fraude que no sea capaz de detectar los casos más habituales.

Publicidad


La diferencia en el proceso de monitorización también afecta a la validación antes de la implementación. En la implementación de una solución de software, es necesario asegurarse de que la aplicación pase todas las pruebas que se han definido. Pero, durante la puesta en producción de un modelo de ciencia de datos, es posible que también sea necesario garantizar que algunas predicciones sean las mismas que en el conjunto de entrenamiento. Por ejemplo, los clientes asignados a un clúster en cornete aún sigan perteneciendo a este o que las anomalías detectadas aún se detecten.

CI/CD en ciencia de datos

Por todo lo visto hasta ahora se puede decir que las técnicas de CI/CD se pueden aplicar en los despliegues de los modelos de ciencia de datos. Aportando grandes ventajas a los mismos. Al igual que en los desarrollos de software lo que se busca con un proceso de integración continua es desplegar una actualización de la aplicación o servicio que mejore los resultados. En este caso de los desarrollos de software, la integración de nuevas funcionalidades o la solución de errores existentes. Mientras que, en los modelos de ciencia de datos, además una actualización de los modelos para que estos generen unas mejores predicciones.

Conclusiones

En esta entrada se ha discutido algunas ventajas de aplicar integración continua para la ciencia de datos. Una metodología ampliamente probada en los proyectos de desarrollo de software. Aunque, debido al espacio, no se ha entrado en detalle de como hacer esto, es algo que se puede dejar para futuras publicaciones.

Imagen de Gino Crescoli en Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Publicidad


Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • cup-of-coffee
    ¿Es sostenible la ciencia de datos basada en Software Libre?
  • autumn
    Diferencias entre regresión y clasificación en…
  • Modelos de datos
    El problema de desequilibrio de clases en conjuntos…
  • Cerca
    La regresión logística
  • checklist
    La implementación de GTD
  • painting
    Muestreo en Python

Publicado en: Ciencia de datos, Productividad

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Publicidad





Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Facebook
  • GitHub
  • Instagram
  • Pinterest
  • RSS
  • Twitter
  • Tumblr
  • YouTube

Publicidad

Entradas recientes

Mantener un sistema de alta disponibilidad con PostgreSQL y repmgr

diciembre 1, 2023 Por Daniel Rodríguez

Diferencias entre los errores 401 y 403 del estándar HTTP

noviembre 29, 2023 Por Daniel Rodríguez

Ver el código de cualquier función en Python

noviembre 27, 2023 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas publicado el mayo 10, 2019 | en Python
  • Seleccionar filas y columnas en Pandas con iloc y loc publicado el junio 21, 2019 | en Python
  • Diferentes formas de ordenar dataframes en pandas publicado el abril 29, 2019 | en Python
  • pandas Pandas: Cómo crear un DataFrame vacío y agregar datos publicado el noviembre 16, 2020 | en Python
  • Obtención de valores únicos de una columna con Pandas publicado el mayo 8, 2019 | en Python

Publicidad

Lo mejor valorado

4.9 (22)

Seleccionar filas y columnas en Pandas con iloc y loc

4.7 (12)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.6 (15)

Archivos JSON con Python: lectura y escritura

4.5 (10)

Diferencias entre var y let en JavaScript

4.4 (13)

Ordenación de diccionarios en Python mediante clave o valor

Publicidad

Comentarios recientes

  • Anto en Rendimiento al iterar en JavaScript sobre un vector
  • Daniel Rodríguez en Creación de un certificado Let’s Encrypt en Windows con Win-Acme
  • Guillermo en Creación de un certificado Let’s Encrypt en Windows con Win-Acme
  • Daniel Rodríguez en ¿Cómo eliminar columnas y filas en un dataframe pandas?
  • Miguel en ¿Cómo eliminar columnas y filas en un dataframe pandas?

Publicidad

Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2023 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto