Etapas generales en el análisis de datos

Existe en la industria un método muy extendido para abordar el análisis de datos, que es el siguiente:

  • Recopilar los datos procedentes de todas las fuentes de información relevantes.
  • Procesar los datos, incluyendo su limpieza, filtrado y homogeneización.
  • Presentar los datos, de manera que sean comprensibles, especialmente de forma gráfica.
  • Análizar los datos, extrayendo conclusiones que valgan de forma general a partir de los datos de la muestra.
  • Interpretar los resultados, para detectar tendencias y patrones y predecir escenarios futuros.

Sin embargo, en Classora hemos mejorado este método a base de experiencia, añadiendo pequeños pasos intermedios:

  • Definir las preguntas a responder o, en su caso, los objetivos a perseguir.
  • Comprender los datos, no podemos programar un automatismo para que entienda los datos si no lo hacemos nosotros antes.
  • Tomar decisiones con incertidumbre, esto implica asumir pequeños riesgos para hacer mediciones en escenarios controlados.
  • Establecer inferencias causales, es decir, comprobar si los resultados obtenidos son fruto o no de nuestras decisiones.

Algoritmos de machine learning y redes neuronales que utilizamos

  • Regresión: proceso estadístico para estimar las relaciones entre variables cuantitativas (valores numéricos).
    • Regresión lineal: relaciona un output (variable dependiente) con una serie de inputs (variables independientes) a través de un polinomio de grado 1.
    • Regresión polinomial: versión extendida de la regresión lineal que permite explicar relaciones y realizar predicciones gracias a polinominos de grado n.
    • Interpolación: no es bueno para extrapolar (predecir valores fuera del rango de entrenamiento), pero sí para convertir una función discreta en continua.
  • Clasificación: es una subcategoría del aprendizaje supervisado en la que el objetivo es predecir clases (valores discretos).
    • Clasificación Binaria: un ítem puede pertenecer a una de dos clases
    • Clasificación Multiclase: un ítem puede pertenecer a una de varias clases
    • Clasificación Multilabel: etiquetado (un ítem puede pertenecer a varias clases, ordenadas éstas por pesos)
  • Clustering: trata de agrupar un conjunto de datos de forma que los ítems del mismo grupo sean más similares según algún criterio.
    • Clustering duro: un ítem pertenece exactamente a un cluster
    • Clustering difuso: un ítem puede pertenecer a varios clústeres
    • Clustering jerárquico: un items que pertenece a un cluster también pertenece a su cluster padre (relación jerárquica entre clústeres)
  • Asociación: trata de revelar patrones que ocurren dentro de un determinado conjunto de datos.
    • Reglas de asociación: relaciones causa-efecto que se pueden traducir en reglas lógicas
    • Filtrado selectivo: busca descartar reglas empíricamente en función del conocimiento de dominio
    • Sistemas de recomendación: reglas que se cumplen en el contexto para poder predecir recomendaciones

Regresión

  • Regresión lineal
  • k-Nearest Neighbors
  • Support Vector Machines
  • Random Forest
  • Decision Table
  • Perceptrón Multicapa

Clasificación

  • Naive Bayes
  • Perceptrón Multicapa
  • Random Forest
  • Zero R
  • M5 Rules
  • Decision Table

Clustering

  • K-Means
  • Canopy
  • DBSCAN
  • Mean Shift
  • AGNES
  • Farthest First

Asociación

  • A Priori
  • FP-Growth
  • ECLAT
  • Filtered Associator
  • ClassRule Associator
  • Sinergy Associator

Flujo Machine Learning

Métodos de evaluación de los algoritmos

Una vez finalizado el entrenamiento, es necesario saber qué tal se ha adaptado el modelo resultante a nuestros datos. Para ello tenemos varias alternativas:

Usar el conjunto de entrenamiento como conjunto de pruebas

Es la manera más rápida y directa para evaluar un modelo... pero puede no ser fiable, ya que no se sabe si va a extrapolar bien (es decir, si va a predecir bien los resultados fuera del conjunto de entrenamiento). También puede dar problemas de sobreajuste: un 100% no implica que el modelo esté bien entrenado, sino que ha "memorizado" la entrada.

Usar un % del conjunto de entrenamiento como test

Por ejemplo, 75% de las instancias para entrenar y 25% restante para evaluar. Puede parecer mejor que la anterior, pero tiene el problema de que reduce el tamaño del conjunto de entrenamiento. Además, se introduce la aleatoriedad de cómo se divide dicho conjunto, ¿qué instancias son mejores para entrenar y cuáles son mejores para evaluar?

Cross-validation (validación cruzada)

Imaginemos un cross-validation de 10 folds: esto implica que se toma el conjunto de entrenamiento y se divide en 10 partes. La primera de esas partes de usa para evaluar, y las otras 9 para entrenar. Después se utiliza la segunda parte para evaluar, y las 9 restantes para entrenar. Así sucesivamente hasta completar 10 iteraciones. Al final, se halla la media (micro-promedio) de cada una.

Referencias de Classora en proyectos avanzados de datos

Hemos desarrollado con éxito decenas de proyectos de integración y análisis de datos, tanto para empresas pequeñas (incluyendo comercios locales) como para grandes multinacionales (incluyendo empresas del IBEX-35). Por cuestiones de confidencialidad no podemos presentarlos todos, pero aquí dejamos una pequeña muestra con diez proyectos singulares. Puedes consultar nuestros clientes y referencias aquí.

  • Proyecto para una cadena de supermercados, que consistió en diseñar un data warehouse y cargarlo automáticamente con procesos ETL a partir de las diferentes bases de datos departamentales. El DWH se utiliza para distintos objetivos, entre ellos, alimentar a un Sistema de Soporte a la Decisión (DSS) y monitorizar indicadores clave para la empresa (KPIs).
  • Proyecto para una empresa del sector textil, que consistió en crear un portal de APIs, es decir, una plataforma web en la cual se puedan registrar, probar y mantener todos los microservicios que se utilizan en los entornos de desarrollo y producción de la empresa, incluyendo APIs REST, gRPC, GraphQL, AsyncAPI, SOAP, Kafka... etc. Todo ello correctamente integrado con Swagger, un servidor de mocks y todos los demás flujos de la empresa.
  • Proyecto para una empresa del sector auditivo, que consistió en implementar una plataforma online para realizar audiometrías (gráficas de frecuencias vs decibelios) y pruebas auditivas complejas a distancia. Los datos de los pacientes se agregan y se cruzan con un glosario de dolencias y un vademecum para proponer tratamientos predefinidos, que después son modificados manualmente por el profesional de salud que trata a cada paciente.
  • Proyecto para una empresa del sector bancario, que consistió en desarrollar un servicio de monitorización de dos boletines oficiales (BOE y BORME). En el marco del análisis de riesgos, el servicio sirve para detectar empresas en situación concursal.
  • Proyecto para una empresa de telecomunicaciones, que consistió en generar un servicio para enriquecer los contenidos audiovisuales (películas o series) que se emiten en TV, con datos adicionales en tiempo real. Estos datos se muestran en una app, incluyendo personajes, lugares y empresas que se mencionan durante los diálogos.
  • Proyecto para una empresa de industria gráfica, que consistió en implantar una solución que integrase definiciones de la RAE en libros electrónicos (ebooks) en formato epub. El objetivo es que el lector pueda consultar ipso facto dudas sobre términos que figuran en la lectura. El proyecto tiene versión online y offline, y ya ha trascendido las fronteras españolas.
  • Proyecto para una editorial de contenidos online: servicio que muestra las farmacias de guardia a nivel municipal, comarcal, provincial y autonómico, para una determinada fecha. La dificultad del proyecto radicó en que las farmacias de guardia son publicadas por los Colegios Oficiales de Farmacéuticos de cada provincia, por lo que fue necesario coordinar 52 crawlers.
  • Proyecto para una agencia de noticias, desarrollado bajo el marco del "Digital News Innovation Fund (DNI Fund)" de Google, el trabajo consistió en implementar un portal que integrase datos de distintas fuentes, con el objetivo de enriquecer noticias con gráficas y tablas de todo tipo. Puedes consultar el resultado en www.epdata.es
  • Proyecto para una empresa de prensa digital: consistió en implantar un servicio para monitorizar, en tiempo real, las portadas de los principales medios de comunicación españoles. El objetivo es presentar una lista de "temas del momento" (trending topics) y cotejar dichos temas con los que está generando internamente su redacción. El cálculo de los pesos de cada tema incluye factores como el tamaño de letra, la posición en portada, la existencia de foto y sus dimensiones, el nº de comentarios y el nº de shares.
  • Proyecto para una empresa del sector videojuegos, en el contexto de un portal de comercio electrónico: el proyecto se basa en robots (crawlers) que visitan constantemente las tiendas de e-commerce de la competencia para detectar descuentos, promociones, rebajas y cualquier variación en el precio de los productos publicados. También se historiza, con fines de análisis estadístico, el nº de comentarios y la valoración numérica de cada artículo.

Estos son sólo algunos ejemplos de proyectos singulares... quizás de los más representativos de cada tipo, para ilustrar la diversidad de proyectos que podemos acometer con datos. No es una lista exhaustiva, de hecho no se incluyen los servicios de clasificación de textos para medios digitales.

¿Preparado para iniciar un proyecto de integración y análisis de datos? Contacta con nosotros para que te guiemos en todo el proceso.

Formulario de contacto


«No se puede mejorar lo que no se controla, no se puede controlar lo que no se mide...»

(William Edwards Deming)