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.