Kitabı oku: «Innovando la educación en la tecnología», sayfa 20
2.2 Descripción de interacción de los componentes
Describimos la interacción entre los componentes, lo primero que se tiene que hacer es identificar cada uno de los dispositivos, se observan los dispositivos D1, D2, D3, D4 y D5, cada uno de ellos tiene una identificación adicional que es el tipo de dispositivo (TD), vemos que los dispositivos D2 y D4 tienen el mismo tipo de dispositivo TD2, esto vendría a ser la categoría. En el dispositivo se deben definir dos bloques de datos, la cabecera de los datos donde se graba el identificador del dispositivo que llamaremos ID y el identificador del tipo de dispositivo que llamaremos TID. En el cuerpo de los datos de la trama del dispositivo se registran los datos censados. Una vez enviada la trama de datos en formato binario, este llega al middleware. En el middleware lo primero que se hace es enviar la trama de datos al componente MessageQueue y luego se deserializa utilizando el componente processing y se valida que los datos de cabecera estén registrados en el componente file system. Previamente en el file system se ha registrado el tipo de dispositivo del cual pueden recibir la trama de datos y los dispositivos que le pueden enviar datos. En el componente processing se deben instalar los módulos de deserialización. Cuando se recibe un tipo de dispositivo el componente processing lo atenderá con el módulo que le corresponde, de esta forma si se registra un nuevo tipo de dispositivo se instalará solo el módulo de deserialización y se registrará en el file system. Esto permitirá realizar pruebas de concepto sin afectar a los otros módulos que ya están en operación y permitirá escalabilidad.
2.3 Diseño del file system
En nuestra base de datos NOSQL se crea la colección identificando el ecosistema al cual corresponde (véase la figura 9). Dentro de un ecosistema puede existir más de un middleware. Un middleware puede recibir tramas de varios tipos de dispositivos TD y puede haber varios dispositivos por tipo de dispositivo.
Finalmente, si tuviéramos varios ecosistemas, cada uno tendría su identificación que luego podrían ser consolidados en la nube de tal manera que se aseguraría el escalamiento desde un fog computing hacia el cloud computing.
Por ejemplo:
ES1 / GW1 / TD1 / D1 / Trama-JSON
ES1 / GW1 / TD2 / D2 / Trama-JSON
ES1 / GW1 / TD2 / D4 / Trama-JSON
2.4 Escalando múltiples ecosistemas IoT mediante interoperabilidad
La figura 10 muestra la capacidad de interoperar entre los device con el ecosistema (fog computing), respetando el patrón propuesto tipificando los tipos de dispositivos, asignándole un comportamiento único en el proceso de serialización y deserialización. Esto facilita la integración de un nuevo dispositivo en el ecosistema IoT.
3. CONCLUSIONES
En este paper proponemos una nueva arquitectura de software para superar el reto de la interoperabilidad en soluciones IoT, iniciando con el diseño de un ecosistema (fog computing). Identificamos todos los componentes y sus interacciones. Diseñamos la estructura de datos que permitirá determinar la procedencia de los datos haciéndolos únicos dentro del ecosistema. Creamos ID únicos de los dispositivos a través de certificados encriptados para seguridad. Creamos la trama de formato binario para mejorar la velocidad de comunicación. Con este patrón logramos escalabilidad y alta disponibilidad integrándolos a través de un cloud computing.
4. TRABAJO FUTURO
Se ha implementado esta arquitectura en una aplicación en tiempo real como prueba de concepto. La solución implementa sensores para medir parámetros de medio ambiente tales como temperatura, humedad, sonido y monóxido, una minicomputadora Raspberri Pi 3 Model B (1.4 GH QuadCore) como middleware, una tarjeta Arduino, SQLite para el file system, Protocol Buffer para el encode-decode de los datos y el servicio de Firebase para hacer cloud computing de análisis de datos y almacenamiento.
Está pendiente desarrollar los otros componentes, como también el implementar dos o más ecosistemas con este patrón para demostrar la escalabilidad e identificar la procedencia de los datos mediante este diseño. El diseño de los datos de la prueba de concepto se puede ver en la figura 11.
Además, se debe realizar una prueba de estrés provocando concurrencia de los datos para la implementación del uso del componente MessageQueue (MQ) y asegurar la alta disponibilidad. Una primera implementación del uso de MQ se realizaría con RabbitMQ, sin embargo, luego estudiaremos la implementación de NATS y Kafka para manejo de MQ.
Descripción de las columnas
Los datos que se aprecian en la figura 11 se obtuvieron de un proceso de descarga que formatea en modo fila-columnas, pues los datos están guardados en formato JSON.
Detalle de los nombres de las columnas:
• gwName: nombre del gateway.
• gwid: identificador del gateway.
• devName: nombre del dispositivo.
• devid: identificador del dispositivo.
En nuestra prueba de concepto desarrollamos un dispositivo con múltiples sensores, esto permitió ahorrar en hardware.
REFERENCIAS
Alaya, M. B., Drira, K., y Gharbi, G. (2017). Semantic-aware Iot platforms. 2017 IEEE International Conference on AI & Mobile Services (AIMS). doi:10.1109/AIMS.2017.15
Alkhalil, A., y Ramadan, R. A. (2017). IoT data provenance implementation challenges. doi:10.1016/j.procs.2017.05.436
Andročec, D., Tomaš, B., y Kišasondi, T. (2017). Interoperability and lightweight security for simple IoT devices. 2017 40th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). doi:10.23919/ MIPRO.2017.7973621
Bloebaum, T. H., y Johnsen, F. T. (2015). Exploring SOAP and REST communication on the Android platform. MILCOM 2015 - 2015 IEEE Military Communications Conference. doi:10.1109/MILCOM.2015.7357509
Di Martino, B., Esposito, A., Augusto Maisto, S., y Nacchia, S. (2017). A semantic IoT framework to support RESTful devices’ API interoperability. doi:10.1109/ ICNSC.2017.8000071
Dragoni, N., Giallorenzo, S., Lluch Lafuente, A., Mazzara, M., Montesi, F., Mustafin, R., y Safina, L. (2017). Microservices: yesterday, today, and tomorrow. doi:10.1007/978-3-319-67425-4_12
Elsts, A., Oikonomou, G., Fafoutis, X., y Piechocki, R. (2017). Internet of things for smart homes: lessons learned from the SPHERE case study. Global Internet of Things Summit (GIoTS), 2017 Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/ GIOTS.2017.8016226
Gligorić, N., Dejanović, I., y Krčo, S. (2011). Performance evaluation of compact binary XML representation for constrained Devices. doi:10.1109/DCOSS.2011.5982183
Guinard, D. D., y Trifa, V. M. (2016). Building the web of things. NY: Manning Publications.
Jaimini, U. (2017). PhD Forum: Multimodal IoT and EMR based smart health application for asthma management in children. 2017 IEEE International Conference on Smart Computing (SMARTCOMP). doi:10.1109/SMARTCOMP.2017.7947025
Jarwar, M. A., Ali, S., Kibria, G. M., Kibria, G., Kumar, S., y Chong, I. (2017). Exploiting interoperable microservices in web objects enabled internet of things. doi:10.1109/ ICUFN.2017.7993746
Kum, S. W., Moon, J., y Lim, T.-B. (2017). Design of fog computing based IoT application architecture. doi:10.1109/ICCE-Berlin.2017.8210598
Lim, N., Majumdar, S., y Nandy, B. (2010). Providing interoperability for resource access using web services. doi:10.1109/CNSR.2010.23
Lysogor, I., Voskov, L., y Efremov, S. (2018). Survey of data exchange formats for heterogeneous LPWAN-Satellite IoT networks. doi:10.1109/MWENT.2018.8337257
Madaan, N., Ahad, M. A., y Sastry, S. M. (2017). Data integration in IoT ecosystem: Information linkage as a privacy threat. doi:10.1016/j.clsr.2017.06.007
Malik, S., y Kim, D.-H. (2017). A comparison of RESTful vs. SOAP web services in actuator networks. 2017 Ninth International Conference on Ubiquitous and Future Networks (ICUFN), 753-755. doi:10.1109/ICUFN.2017.7993893
Mengistu, T., Alahmadi, A., Albuali, A., Alsenani, Y., y Che, D. (2018). A “No data centerˮ solution to cloud computing. doi:10.1109/CLOUD.2017.99
Nakayama, M., Yamazaki, K., Tanaka, S., y Kasahara, H. (2014). Parallelization of Tree-to-TLV serialization. doi:10.1109/PCCC.2014.7017059
Pace, P., Gravina, R., Aloi, G., Fortino, G., Fides-Valero, A., Ibañez-Sanchez, G., … Yacchirema, D. (2017). IoT platforms interoperability for active and assisted living healthcare services support. doi:10.1109/GIOTS.2017.8016250
Paharia, B., y Bhushan, K. (2018). Fog computing as a defensive approach against distributed denial of service (DDoS): a proposed architecture. 2018 9th International Conference on Computing, Communication and Networking Technologies (ICCCNT), 1-7. doi:10.1109/ICCCNT.2018.8494060
Petersen, B., Bindner, H., Poulsen, B., y You, S. (2017a). Smart grid communication comparison. Distributed control middleware and serialization comparison for the internet of things. Proceedings of 7th IEEE International Conference on Innovative Smart Grid Technologies IEEE. doi:10.1109/ISGTEurope.2017.8260268
Petersen, B., Bindner, H., You, S., y Poulsen, B. (2017b). Smart grid serialization comparison. Comparision of serialization for distributed control in the context of the Internet of Things. 2017 Computing Conference, 1339-1346. doi:10.1109/sai.2017.8252264
Ray, P. P., Mukherjee, M., y Shu, L. (2017). Internet of things for disaster management: State-of-the-art and prospects. doi:10.1109/ICWS.2017.26
Rostanski, M., Grochla, K., y Seman, A. (2014). Evaluation of highly available and fault-tolerant middleware clustered architectures using RabbitMQ. 2014 Federated Conference on Computer Science and Information Systems, 879-884.
Serrano, D., Stroulia, E., Lau, D., y Ng, T. (2017). Linked REST APIs: A middleware for semantic REST API integration. 2017 IEEE International Conference on Web Services (ICWS), 138-145. doi:10.1109/ICWS.2017.26
Silverajan, B., Ocak, M., Jimenez, J., y Kolehmainen, A. (2016). Enhancing lightweight M2M operations for managing IoT gateways. 9th IEEE International Conference on Internet of Things (iThings 2016) (pp. 187-192). IEEE. doi:10.1109/iThings-GreenCom-CPSCom-SmartData.2016.55
Sun, L., Li, Y., y Memon, R. A. (2017). An open IoT framework based on microservices architecture. China Communications, 14, 154-162. doi:10.1109/CC.2017.7868163
Talavera, J. M., Tobón, L. E., Gómez, J. A., Alejandro, M. A., Aranda, J. M., Parra, D. T., … Garreta, L. E. (2017). Review of IoT applications in agro-industrial and environmental fields. Computers and Electronics in Agriculture, 142, 283-297. doi:10.1016/j. compag.2017.09.015
Wendt, A., Faschang, M., Leber, T., Pollhammer, K., y Deutsch, T. (2013). Software architecture for a smart grids test facility. IECON 2013 - 39th Annual Conference of the IEEE Industrial Electronics Society, 7062-7067. doi:10.1109/IECON.2013.6700304
Yacchirema, D. C., Palau, C. E., y Esteve, M. (2017). Enable IoT interoperability in ambient assisted living: active and healthy aging scenarios. 2017 14th IEEE Annual Consumer Communications & Networking Conference (CCNC), 53-58. doi:10.1109/CCNC.2017.7983081
Yigitoglu, E., Liu, L., Looper, M., y Pu, C. (2017). Distributed orchestration in large-scale IoT systems. 2017 IEEE International Congress on Internet of Things (ICIOT), 58-65. doi:10.1109/IEEE.ICIOT.2017.16
Generación de reglas de asociación para productos de retail utilizando el algoritmo FP-Growth paralelo
Renato Pérez-Gómez
renato08lasalle13@gmail.com / Universidad de Lima, Perú
Recepción: 19-6-2019 / Aceptación: 8-8-2019
RESUMEN. Las organizaciones minoristas actuales tienen varias sucursales conectadas bajo el mismo sistema de gestión distribuido. Estos sistemas almacenan y registran la información de todas las transacciones dadas en las tiendas. Paralelamente, con el rápido crecimiento e implementación de las tecnologías de la información e Internet, la cantidad de datos generados en cada transacción o venta realizada es sustancial. Las técnicas de minería de datos tienen como objetivo identificar patrones y tendencias en una gran recopilación de datos. Su uso tiene un atractivo para los minoristas, ya que quieren convertir la gran cantidad de datos que tienen en información y conocimiento útiles. Una aplicación de minería de datos que atrae a los minoristas es el descubrimiento de reglas de asociación. El descubrimiento de estas reglas es la base de muchas decisiones comerciales, como el diseño de la canasta de productos, la elección de la estrategia de promoción y la combinación de productos. La intención de la investigación es la aplicación de las técnicas y metodologías de aprendizaje de asociación de reglas para la realidad de un comercio minorista con sucursales ubicadas en Lima. El conjunto de datos utilizado en esta investigación corresponderá a las transacciones realizadas con el tiempo para productos de consumo masivo.
PALABRAS CLAVE: minería de datos, análisis de la cesta de la compra, análisis de reglas de asociación, conjuntos de elementos frecuentes, FP-Growth, computación paralela
Generation of Association Rules for Retail Products Using the Parallel FP-Growth Algorithm
ABSTRACT. Retail organizations today have several branches connected under the same distributed management system. These systems store and record the information of all transactions taken place in stores. In parallel, with the rapid growth and implementation of information technologies and the Internet, the amount of data generated in each transaction or sale is substantial. The data mining techniques are aimed at identifying patterns and trends in a large data collection. The use of these techniques is attractive for retailers, as they want to convert the large amount of data they have into useful information and knowledge. A data mining application that attracts retailers is the discovery of association rules. The discovery of these rules is the basis of many commercial decisions, such as the design of the product basket, the choice of the promotion strategy and the combination of products. This research aims to apply learning techniques and methodologies of association rules for a retailer with branches located in Lima. The data set used in this research will match the transactions made over time for mass consumption products.
KEYWORDS: data mining, market basket analysis, association rule analysis, frequent itemsets, FP-growth, parallel computing
1. INTRODUCCIÓN
Con la tendencia, en los últimos años, de registrar y almacenar todo dato posible relacionado a los procesos operativos de la organización, la cantidad de data generada es abundante. Respecto a la industria del retail, gran parte de la data generada proviene de los miles de transacciones efectuadas en cada una de las sucursales. Los grandes representantes del sector a nivel mundial han identificado el gran potencial en minar la información oculta dentro de estos conjuntos de datos. Sin embargo, la aplicación de las técnicas de minería de datos no es el estándar en la mayoría de las organizaciones. La mayor aplicación de la minería de datos en el sector retail es la minería de reglas de asociación. Esta práctica supone un atractivo para las organizaciones debido a que tiene la intención de convertir la gran cantidad de datos que poseen en información útil y conocimiento. El descubrimiento de estas reglas es la base de muchas decisiones comerciales, como el diseño de la cesta de productos, la elección de la estrategia de promoción y la combinación de productos. Para la minería de reglas de asociación normalmente se hace uso del algoritmo Apriori. No obstante, en el desarrollo del algoritmo no estuvo pensado para manejar grandes volúmenes de datos por lo que en la actualidad es costoso, tanto computacional como en memoria. Existen otras alternativas óptimas respecto al manejo de memoria y que requieren de menos capacidad computacional; el algoritmo FP-Growth demuestra tener mejores resultados en rendimiento. Este algoritmo busca resolver las desventajas que posee el algoritmo clásico. Ya que este consiste en dos pasos para la generación de las reglas de asociación, es menos costoso en tiempo y en recursos. Si a este algoritmo se le suma la capacidad de procesar información en paralelo, el tiempo necesario para la ejecución del algoritmo será reducido drásticamente. Para lograr esto, en esta investigación, se hizo uso del framework Apache Spark y de su implementación del algoritmo FP-Growth.
2. ESTADO DEL ARTE
Los algoritmos existentes para la minería de reglas de asociación funcionan en datos estáticos, (Kaur y Kang, 2016). Estos encuentran las mejores reglas de asociación en base a métricas como soporte, confianza, elevación, etc. Sin embargo, para la próxima vez que se realiza la extracción de datos, estos algoritmos no capturan automáticamente los cambios en los datos. Por ello se usa algún otro algoritmo de comparación para rastrear el cambio en los datos. Este último, se utiliza para comprender la dinámica del proceso de generación de datos mediante la examinación de los cambios que se han producido en los patrones descubiertos. Se concluye que la minería periódica es un nuevo enfoque en la minería de datos que adquiere importancia. Este campo está evolucionando debido a las necesidades en diferentes aplicaciones y limitaciones de la minería de datos. Esto aumentaría el poder de las técnicas existentes de extracción de datos.
Según Di Fatta (2019), podría decirse que algunos factores limitantes han impedido una adopción más generalizada de ARM (association rule mining). En primer lugar, el descubrimiento de patrones interesantes a partir de datos requiere algoritmos combinatorios complejos y, a menudo, se benefician de la computación de alto rendimiento. Para problemas del mundo real, el espacio de búsqueda puede ser prohibitivamente grande. En segundo lugar, no es raro que incluso para un conjunto de datos de entrada relativamente pequeño, el conjunto de patrones descubiertos sea muy grande, incluso más grande que el conjunto de datos de entrada. En este caso, ARM es solo un primer paso en flujos de trabajo de datos más complejos que incluyen otras técnicas de extracción de datos. Por estas razones, un enfoque multidisciplinario que combina la experiencia tanto de la informática como del dominio de la aplicación específica es a menudo crítico.
En la investigación realizada por Griva, Bardaki, Pramatari y Papakiriakopoulos (2018) se propone un enfoque de análisis de negocios que extrae segmentos de visitas de clientes a partir de datos de venta. Se caracteriza por visita al cliente según las categorías de productos comprados en la canasta e identifica la intención de compra o la misión detrás de la visita. Además, se sugiere un enfoque de selección de funciones semisupervisadas que utiliza la taxonomía del producto como entrada y sugiere categorías personalizadas como salida. Este enfoque se utiliza para equilibrar el árbol de taxonomía del producto que tiene un efecto significativo en los resultados de la extracción de datos. En general, el resultado de esta investigación permite observar el comportamiento de compra de los clientes desde un punto de vista alternativo, no como sus necesidades e intenciones generales de compra, sino que se centran en sus requisitos y motivos por cada viaje o visita de compras.
Referente a Bhandari, Gupta y Das (2015), identifican la principal limitación de Apriori como el costo de tiempo para mantener un gran número de conjuntos candidatos con conjuntos de elementos frecuentes, soporte mínimo o conjuntos de elementos grandes. Por lo que proponen modificar el algoritmo para generar un FP-Tree en lugar de iterar el dataset una gran cantidad de veces. Con el algoritmo de Apriori se escaneó la base de datos dos veces, pero evidenciaron una mejora al usar el algoritmo paralelo y el concepto de partición. Presentan una fórmula matemática para seleccionar el clúster, ya que hay muchos clústeres. El resultado, un híbrido de Apriori con generación de FP-Tree. Concluyen, así, que el espacio de memoria se reduce drásticamente cuando se realiza una gran cantidad de transacciones desde los data-warehouse y al reducir el tiempo consumido en el escaneo de transacciones y también al reducir el número de transacciones a escanear.
En Galarreta Vásquez (2016) se identifican reglas de asociación entre categorías de productos de electrodomésticos de un retail. Para la prueba utilizaron data histórica de diez años para tres tiendas. El modelo se construyó con el software RapidMiner conectado a una BD en SQL Server. Eligió el algoritmo FP-Growth al ser más eficiente que Apriori e hizo uso de la totalidad de registros disponibles en la BD. Lo productos presentaban la siguiente jerarquía: familia, subfamilia, marca y es oferta. La data fue filtrada por oferta para dividir los productos en campañas promocionales, ya que podían alterar el resultado. La BD fue transformada para generar una matriz, la cual, luego, fue procesada por el algoritmo. La matriz almacenó la información cruzada de todo cliente que compró en el local y todas las subfamilias de productos. Si un cliente compró, por lo menos una vez un producto de la subfamilia, entonces fue registrado como TRUE, sea contrario como FALSE. Se concluyó que los productos con bajo precio incentivan la compra de productos con mayor precio.
Respecto a Xue, Wang, Liu y Li (2010), diseñan un modelo de minería de reglas de asociación para una venta de libros online. Para esto tienen 623 registros en la BD, los cuales fueron separados en 4 tablas. Definieron los parámetros soporte y confianza con 2 % y 60 %, respectivamente. Para la minería crearon una librería basada en ASP.NET. Luego, con un experimento analizaron los hábitos de compra de los clientes al encontrar asociaciones entre los artículos de pedido en la base de datos. La información obtenida del resultado del ejercicio concluyó que se lleva un aumento de las ventas al ayudar a los retailers a realizar una comercialización selectiva y planificar el espacio de la librería.
En Chunhua y Dongjun (2008) se presentan dos modelos de minería capaces de adaptarse a dos tipos de organización. Los autores plantean que existen dos tipos de organizaciones, aunque todas adoptan el enfoque de minería distribuida y el mismo patrón de toma de decisiones. En general, la carga de comunicación y la frecuencia de comunicación son los dos factores que afectan la eficiencia de la minería de datos. Se puede analizar un sistema de gestión distribuido desde tres aspectos: 1) cantidad de la tienda de sucursales; 2) el ancho de banda de comunicación; 3) entre las características del conjunto de datos local, las características incluyen si es denso o escaso, las cantidades de datos de transacciones, etc. Se definen dos tipos de organizaciones de retail. El primer tipo corresponde a las organizaciones que tienen varias sucursales y el bando de ancho de comunicación es largo (gran escala), mientras que la data de transacción de cada sucursal es pequeña. El segundo tipo, tienen pocas sucursales y comunicación pequeña, mientras que la data de transacción es grande (pequeña escala).