ml_icono Predicción de ventas de heladerias ST aplicando regresión
Helado

En esta demo se han utilizado los datos de la cadena de heladerías ST para predecir las ventas en función de ciertas variables como el calendario laboral, la temperatura o el número de horas de apertura. Para su implementación se ha seleccionado el algoritmo de regresión GBT (árboles potenciados por gradiente) y se ha utilizado la tecnología Apache Spark que permite la ejecución en un clúster Big Data Hadoop. Para la visualización se ha utilizado Apache Zeppelin, creando un Notebook que combina el código Spark con otras tecnologías de visualización. A continuación se muestra un dashboard formado por componentes embebidos del Notebook, el cual puede verse en detalle, junto con el código, en el siguiente enlace.

loadingCargando
Información

En el caso de estudio que presentamos, hacemos uso de la herramienta Pentaho Data Integration para procesar datos de diferentes fuentes de datos. Esta información interna y externa incluye datos históricos sobre las ventas de las heladerías así como datos acerca del calendario laboral, la temperatura, horarios de apertura etc.

Aunque la aplicación de demostración no contempla el procesamiento de datos de APIs o el uso de Wescraping, estas tecnologías se han implementado en otros proyectos y pueden ser integradas con Pentaho Data Integration. Tras la carga y procesamiento de datos, se ha generado un archivo de datos almacenado en un clúster de Hadoop (HDFS).

Se ha utilizado Apache Spark para la explotación de los datos mediante el uso de Spark SQL y Spark MlLib. Se ha construído un modelo predictivo para determinar las ventas de las heladerías partiendo de la fecha y las variables de entorno que podrían condicionar las mismas. Se ha utilizado el algoritmo GBT que ha demostrado ofrecer los resultados más adecuados en la evaluación de diferentes modelos de regresión.

Se ha utilizado la herramienta Apache Zeppelin para la visualización de los datos y la realización dinámica de predicciones por parte de los usuarios, utiizando los modelos predictivos generados. Las interfaces de usuario de Zeppelin pueden ser construídas de forma sencilla mediante el uso de formularios dinamicos de Zeppelin o bien de forma más personalizable mediante el uso de HTML, CSS, Javascript y Angular.

La configuración realizada en el clúster permite la utilización de otras herramientas de visualización como Apache Superset para la realización de cuadros de mandos así como la conexión entre el clúster y herrameintas externas de Business Intelligence como pueden ser Tableau, PowerBI o Pentaho.

Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.


Información

Apache Zeppelin es un novedoso servidor para la exploración, creación y publicación de visualizaciones sobre fuentes de datos Big Data (ej. Apache Kylin, Spark, Hive, Cassandra, HBase, Elasticsearch), así como de otras fuentes datos relaciones (ej. PostgreSQL).
Esta herramienta puede ser considerada parte de la pila de herramientas del entorno Hadoop, ya que se integra a la perfección con las mismas.

Para la conexión con las distintas fuentes de datos dispone de distintos intérpretes los cuales deberemos de configurar para el acceso. Una vez configurados el intérprete o intérpretes que necesitemos usar, Zeppelin nos permite la exploración y visualización de las fuentes de datos mediante el concepto de Notebook. Podemos crear distintos Notebook y en ellos ejecutar uno o más bloques de código de distintas fuentes, pudiendo visualizar los resultados de forma textual o mediante las tablas y gráficos que incluye.

Además estos Notebook pueden ser personalizados en opciones y compartidos vía URL con otros usuarios como desarrolladores de las bases de datos, algoritmos, visualizaciones o usuarios finales como los analistas.

No menos importante es la posibilidad de exportar la tabla o gráfico generado por un bloque de código, mediante tecnologías de IFrames para incluir en nuestros cuadros de mando o ejecutarlos y obtener los resultados mediante la API REST de Zeppelin. De esta forma podemos crear cuadros de mando y otras aplicaciones personalizadas que usen como fuente las tecnologías de Big Data de forma transparente, sencilla, y también segura, soportando la integración con un servidor LDAP.

Esta aplicación de demostración incluye un Notebook de Zeppelin con informacion detallada acerca del funcionamiento de la misma y las tecnologías y modelos utilizados.

Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.


Información

Apache Spark es una tecnología de procesamiento distribuído de datos. Destaca por su alta escalabilidad y eficiencia de procesamiento así como por incluir APIs para los lenguajes de programación Java, Scala y Python.

Spark soporta múltiples orígenes de datos (archivos de texto, Excel, CSV, carga de datos de JDBC, tablas de Hive, etc.) y dispone de objetos distribuidos (Data Frames) capaces de almacenar grandes cantidades de información, los cuales se almacenan en memoria en las diferentes máquinas del clúster.

Los Data Frames de Spark pueden ser filtrados, combinados o transformados según las necesidades del usuario. El uso de Spark SQL permite que la transformación de los datos se realice de forma sencilla (con SQL) aunque, si es necesario, es posible utilizar funciones definidas por el usuario para determinadas transformaciones.

Spark MlLib permite aplicar de forma sencilla modelos de Machine Learning sobre conjuntos de datos (DataFrames) de Spark tales como clasificación, regresión, clústering o asociación así como evaluar la calidad de los modelos realizados y realizar predicciones o transformaciones de nuevos datos en base a los modelos generados.

Gracias a la integración con Apache Zeppelin, es posible ejecutar código Spark en un clúster y realizar predicciones de forma dinámica con modelos de Machine Learning.

Si deseas aprender más sobre estas tecnologías, no dudes en apuntarte a nuestros cursos de Big Data Engineering y Data Science con Big Data. Si estas interesado en hacer tu proyecto con esta tecnología no dudes en solicitar presupuesto en StrateBI.

Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.


Información

Disponemos de los datos históricos de las ventas de 36 heladerías ubicadas en España así como de la localización de las mismas, sus horarios y algunas características propias como la posibilidad de consumo de productos en la propia tienda o la posibilidad de adquisición de productos premium. Además de esto, se han extraido datos de fuentes externas acerca del calendario laboral y las temperaturas registradas diariamente en los últimos años.

A partir de los datos cada heladería, combinados con los datos obtenidos de fuentes externas, se busca predecir las ventas en una fecha o rango de fechas futuro (como se puede ver en el Notebook de Zeppelin). Para realizar esto, es necesario construir un modelo predictivo que permita, a partir de las variables de entrada, determinar el valor de la variable objetivo (la cantidad de ventas diaria en euros).

Mediante el uso del algoritmo de regresión GBT (árboles potenciados por gradiente), es posible modelar el comportamiento de las ventas en base a una serie de reglas. Este algoritmo, basado en el uso de árboles de decisión, genera una secuencia lineal de árboles que le permiten realizar un buen ajuste sobre los datos de entrada y tratar tanto variables cuantitativas como cualitativas, sin necesidad de normalizar los datos.

El uso de Apache Spark, con la librería MlLib, permite realizar la construcción del modelo predictivo y la realización de predicciones en un clúster de hadoop, donde se encuentran disponibles las fuentes de información citadas.

Tras realizar pruebas con diferentes modelos de Machine Learning de regresión (como la regresión lineal, arboles de decisión o Random Forest), se ha determinado que GBT es el algoritmo que ofrece los mejores resultados tras analizar las métricas de RMSE y el coeficiente R2, siguiendo un procedimiento de validación cruzada de los modelos creados.

Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.


I+D+i BigData

En StrateBI creemos en el valor de las tecnologías Big Data para el procesamiento de datos y la obtención de conocimiento a partir de los mismos, con el objetivo siempre en mente de mejorar los procesos de toma de decisiones de las organizaciones de cualquier sector, nuestro equipo lleva a cabo una fuerte labor de I+D+i en Big Data.

Investigación

Revisamos novedades y documentación científica de las tecnologías Big Data.

Se hace tanto aquellas emergentes en las que detectamos un gran potencial, como sobre aquellas ya consolidadas.

Con ello detectamos los puntos en los que se puede desarrollar o aprovechar alguna mejora.

Desarrollo

Ponemos en práctica los resultados de las investigaciones anteriores.

Implementamos la mejoras y validamos su aplicación con diversos casos de estudio del mundo real, como los que podemos explorar en nuestra demos Big Data.

Innovación

Una vez hemos comprobado su utilidad y robustez, las introducimos en los proyectos que ofrecemos a nuestros clientes.

De esta forma, StrateBI garantiza el uso de la tecnologías Big Data más novedosas, previamente testeadas y mejoradas por nuestro equipo de I+D+i en Big Data.


Tecnologías Usadas

hadoop

Apache Hadoop es el entorno Big Data por excelencia, permitiendo la computación distribuida en clústeres formados por hardware comercial y de bajo coste.

En su forma más básica incluye almacenamiento distribuido (HDFS), un gestor de recursos de ejecución (YARN) y, funcionando sobre este, el entorno para el desarrollo y ejecución de aplicaciones que implementan en procesamiento distribuido (MapReduce).

Además, sobre la base de los componentes anteriores, han surgido numerosas herramientas, como Hive o Spark, que aportan modelos simplificados de programación para una amplia gama de tareas de procesamiento Big Data.

De entre las distintas tecnologías Big Data, Hadoop es la solución más completa y la que aporta un enfoque más general, siendo ideal para la implementación del novedoso concepto de Data Lake para la posterior explotación de los datos en aplicaciones analíticas.

flume

Flume es un sistema distribuido y confiable para la eficiente colección, agregación y movimiento de datos Streaming.

kafka

Kafka es un sistema de mensajería (publicador-suscriptor) distribuido, tolerante a fallos y de alto rendimiento.

hortonworks cloudera

Con el objetivo de facilitar la instalación y gestión del entorno Hadoop, y de todo el conjunto de aplicaciones que se integran con el mismo, disponemos de lo que se conoce como distribución de Hadoop.

Se trata de un paquete de software, que incluye los componentes básicos de Hadoop junto con una pila de herramientas adicional, listos para su instalación en sistemas operativos Ubuntu, Debian, CentOS o, incluso, Windows Server.

En este sentido, desde de StrateBI recomendamos el uso de una distribución, siendo Hortonworks y Cloudera actualmente las distribuciones líderes. Es por ello que los clústeres Hadoop sobre los que se ejecutan nuestras demos son Hortonworks y Cloudera, siendo ambas soluciones una opción ganadora.

spark spark streaming

Spark implementa el procesamiento de datos haciendo uso intensivo de la Memoria Ram del clúster, en lugar de hacer uso intensivo de disco como MapReduce.

De esta forma se consigue mejorar en gran medida el rendimiento de las aplicaciones Big Data, siendo adecuado para la implementación de algoritmos iterativos de Machine Learning (MLib), análisis estadístico (módulo R) o el análisis de datos en tiempo real (Spark Streaming), aplicación que hemos puesto en práctica en nuestra demo.