Este repositorio se basa en el trabajo del análisis de datos exploratorios (EDA) en los datos de revisión de Amazon (2018) utilizando MongoDB y Pyspark e incluye una aplicación web que está conectada a un sistema de recomendación de producto desarrollado con los datos completos de Data Data Data (2018), que consiste en casi 233.1 millones de registros y ocupan aproximadamente 128 Gigabytes (GB) de almacenamiento de datos, utilizando MongaDB, y APYSPARK y Ocuping y Ocuping Ocuping y APYSPAYB y APYSPARE, USO MONGODB, y APYSPARE Y APYSPARE Y APYSPAR Kafka, como parte del proyecto final para el curso fundamental del Análisis de Big Data (DS2004).
Los sistemas de recomendación de productos son tipos de software que utilizan análisis de análisis de datos y técnicas de aprendizaje automático para sugerir productos a los clientes en función de sus intereses, compras pasadas e historial de navegación. Estos sistemas se pueden encontrar en sitios web de comercio electrónico, como Amazon.com, y están diseñados para proporcionar recomendaciones personalizadas a los usuarios en tiempo real. Los sistemas de recomendación funcionan analizando grandes cantidades de datos, como el comportamiento del usuario, los atributos del producto y el historial de transacciones. Según estos datos, el sistema genera recomendaciones que son relevantes para los intereses y preferencias del usuario. Por ejemplo, si un usuario ha comprado previamente un libro sobre un tema específico, el sistema de recomendación puede sugerir otros libros sobre el mismo tema o temas relacionados.
El conjunto de datos de Amazon Review Data (2018) se puede utilizar para capacitar a un sistema de recomendación de productos que ofrece sugerencias de productos personalizadas a los usuarios en función de su historial de compras, así como los niveles de satisfacción de otros usuarios que han revisado y calificado de productos en la plataforma. Sin embargo, dado que el conjunto de datos es vasto, es crucial analizar y seleccionar cuidadosamente las características relevantes que contribuirán efectivamente al sistema de recomendación del producto, a fin de evitar el sobreajuste y el maletjo del modelo de aprendizaje automático.
Similar a nuestro enfoque en la realización de datos de datos exploratorios (EDA) en los datos de datos de Amazon Review (2018) Data Amazon Review Data (2018) Análisis.IPYNB, 1-38) , empleamos un método estadístico inferencial para capacitar nuestro modelo de recomendación de productos. La razón para usar una muestra para hacer inferencias sobre toda la población es minimizar la carga computacional asociada con el procesamiento del conjunto de datos completo, que a menudo no es práctico para una sola máquina. Si bien el aprendizaje profundo generalmente requiere grandes cantidades de datos, el aprendizaje automático se puede utilizar de manera efectiva para desarrollar metodologías de capacitación sólidas incluso con pequeños conjuntos de datos. Esto es particularmente útil para la investigación basada en hipótesis, que es nuestro objetivo principal con el sistema de recomendación de productos. (Vabalas et al., 2019) En cualquier caso, es importante tener en cuenta que cualquier conjunto de datos es esencialmente un subconjunto de una población más grande.
Para garantizar la precisión de nuestros resultados, es crucial analizar y mitigar cuidadosamente los sesgos potenciales en los datos. Esto es particularmente importante en el aprendizaje automático, que es sensible a los sesgos que pueden dar como resultado estimaciones de rendimiento sesgadas. Para abordar este problema, aplicaremos el enfoque de muestreo aleatorio estratificado que discutimos anteriormente para extraer una muestra representativa de 10,000,000 de registros de la población mientras mantenemos la misma distribución del producto que en el conjunto de datos original. (compress.py, 1-61) Dado que el tamaño de la muestra es bastante grande, lo hemos comprimido en un formato de archivo de parquet Apache, que reduce el tamaño del conjunto de datos en más del 90%.
Mínimos cuadrados alternativos (ALS) es un algoritmo de filtrado colaborativo utilizado para desarrollar sistemas de recomendación de productos. El algoritmo tiene como objetivo aprender los factores latentes o ocultos que influyen en las interacciones de ítems de usuario, descomponiendo la matriz de calificación de ítems de usuario en dos matrices de bajo rango que representan el usuario y los factores latentes de elementos.
Mínimos cuadrados alternativos (ALS) funciona de forma iterativa, alternando entre fijar un conjunto de factores latentes y resolver el otro utilizando un algoritmo de optimización de mínimos cuadrados. En particular, en cada iteración, el algoritmo corrige los factores latentes del elemento y resuelve los factores latentes del usuario utilizando la optimización de mínimos cuadrados, y luego corrige los factores latentes del usuario y resuelve los factores latentes del elemento utilizando la optimización de mínimos cuadrados.
Mínimos cuadrados alternativos (ALS) tiene varias ventajas para los sistemas de recomendación de productos. Es escalable y computacionalmente eficiente, particularmente para conjuntos de datos grandes y escasos. Puede manejar datos de retroalimentación implícitos, donde solo se sabe que las interacciones de ítems de usuario existen o no existen, y no sus calificaciones específicas. También puede manejar datos faltantes, donde no todos los usuarios han calificado todos los elementos. Además, los mínimos cuadrados alternativos (ALS) pueden proporcionar recomendaciones de artículos en tiempo real, lo que lo hace adecuado para sistemas de recomendación en línea.
Product Recommendation Model.ipynb : contiene la implementación (MLLIB) del sistema de recomendación de productos capacitado y probado en el conjunto de datos de datos de revisión de Amazon (2018).srcdata.py : código fuente para almacenar el conjunto de datos del archivo de notación del objeto JavaScript (JSON) en una base de datos MongoDB como una colección.srccompress.py : código fuente para extraer una muestra aleatoria estratificada de un tamaño de muestra especificado del conjunto de datos almacenado en la base de datos MongoDB como una colección y almacenarla como un archivo de parquet Apache.srcvalidate.py : código fuente para validar la precisión y la funcionalidad del sistema de recomendación de productos capacitado utilizando un ejemplo práctico.modelproduct_recommendation_model : directorio que contiene el modelo de aprendizaje automático capacitado para el sistema de recomendación de productos.appapplication.py - Fuente de la aplicación web (Flask) asociada con el sistema de recomendación de productos a través de un clúster Apache Kafka.apprecommendation.py : código fuente para el clúster Apache Kafka conectado al modelo de aprendizaje automático capacitado para el sistema de recomendación de productos que permite la generación de recomendaciones de productos.templates : contiene los códigos de origen para las páginas web ( login.html , dashboard.html , review.html , loading.html y recommendation.html ) representada por la aplicación web (frasco).static : contiene todos los iconos y elementos visuales utilizados por la aplicación web (frasco)..hintrc : archivo de configuración para personalizar el comportamiento de Eslint especificando configuraciones y reglas específicas. All_Amazon_Review.json.gz del sitio web de la recopilación de datos de revisión de Amazon (2018).srcdata.py para guardar el conjunto de datos del archivo JavaScript Object Notation (JSON) en una base de datos MongoDB como una colección (asegúrese de que MongoDB ya esté configurado).srccompress.py para extraer una muestra aleatoria estratificada de un tamaño especificado del conjunto de datos almacenado en MongoDB y guarde la muestra como un archivo de Parquet Apache.Product Recommendation Model.ipynb (1-16) para transformar la colección y almacenarlo en MongoDB para un acceso permanente (no tiene que ejecutar el archivo completo).apprecommendation.py en el lado (asegúrese de que un clúster Apache Kafka se haya establecido correctamente y esté operativo, con dos temas nombrados credenciales y recomendaciones ).appapplication.py y abra el enlace proporcionado al puerto de host./dashboard , haga clic en el botón Revisión y envíe cualquier contenido./loading mientras se generan las recomendaciones del producto./recommendation para ver las recomendaciones de productos generadas. Los archivos del código fuente se escribieron específicamente para MacOS Ventura y pueden necesitar modificaciones para garantizar la ejecución adecuada de otros sistemas operativos.
Este proyecto existe gracias a las personas extraordinarias que contribuyeron a él.