Этот репозиторий основан на работе исследовательского анализа данных (EDA) по данным обзора Amazon (2018) с использованием MongoDB & PYSPARK и включает в себя веб -приложение, которое подключено к системе рекомендаций по продукту, разработанной с комплексным набором данных по обзору амазонки (2018), состоящий из почти 233,1 млн. Записей и занимающих приблизительно 128 GigabyTes (GB) хранилища данных, PAPARIRCOD, PAPARIRK , и используйте MongoD, PAPARING, и используйте MongoD, PAPARING, и используют MongoD, PAPARING. Кафка, как часть окончательного проекта для фундаментального курса анализа больших данных (DS2004).
Системы рекомендаций по продукту - это типы программного обеспечения, которые используют анализ данных и методы машинного обучения, чтобы предложить продукты для клиентов на основе их интересов, прошлых покупок и истории просмотра. Эти системы можно найти на веб-сайтах электронной коммерции, таких как Amazon.com, и предназначены для предоставления персонализированных рекомендаций пользователям в режиме реального времени. Рекомендационные системы работают, анализируя огромные объемы данных, такие как поведение пользователя, атрибуты продукта и история транзакций. Основываясь на этих данных, система генерирует рекомендации, которые имеют отношение к интересам и предпочтениям пользователя. Например, если пользователь ранее приобрел книгу по конкретной теме, система рекомендаций может предложить другие книги по той же теме или связанные темы.
Набор данных Amazon Review Data (2018) может быть использован для обучения системы рекомендаций по продукту, которая предлагает индивидуальные предложения продуктов пользователям на основе их истории покупок, а также уровня удовлетворенности других пользователей, которые просматривали и оценили продукты на платформе. Однако, поскольку набор данных обширный, крайне важно тщательно проанализировать и выбрать соответствующие функции, которые будут эффективно вносить вклад в систему рекомендаций по продукту, чтобы избежать как переосмысления, так и недостатки модели машинного обучения.
Подобно нашему подходу в проведении исследовательского анализа данных (EDA) в наборе данных Amazon Review Data (2018) Amazon Review Data (2018) . Обоснование использования выборки для вывода обо всей популяции заключается в минимизации вычислительной нагрузки, связанной с обработкой полного набора данных, который часто нецелесообразно для одной машины. Хотя глубокое обучение обычно требует больших объемов данных, машинное обучение может быть эффективно использовано для разработки надежных методологий обучения даже с небольшими наборами данных. Это особенно полезно для исследований, основанных на гипотезе, которое является нашей основной целью с системой рекомендаций по продукту. (Vabalas et al., 2019) В любом случае важно отметить, что любой набор данных по сути является подмножеством большей популяции.
Чтобы обеспечить точность наших результатов, крайне важно тщательно проанализировать и смягчить потенциальные смещения в данных. Это особенно важно для машинного обучения, которое чувствительно к предубеждениям, которые могут привести к искаженным оценкам производительности. Чтобы решить эту проблему, мы применим стратифицированный подход к случайной выборке, который мы обсуждали ранее, чтобы извлечь репрезентативную выборку из 10 000 000 записей из населения при сохранении того же распределения продуктов, что и в исходном наборе данных. (Compress.py, 1-61) Поскольку размер выборки довольно большой, мы сжали его в формат файла Parquet Apache, который уменьшает размер набора данных более чем на 90%.
Чередующиеся наименьшие квадраты (ALS) - это алгоритм совместной фильтрации, используемый для разработки систем рекомендаций продукта. Алгоритм направлен на изучение скрытых или скрытых факторов, которые влияют на взаимодействие с пользователем, путем разложения матрицы рейтинга пользователя на два низкопользовых матрица, представляющие скрытые коэффициенты пользователя и элемента.
Чередующиеся наименьшие квадраты (ALS) работают итеративно, чередующиеся между одним набором скрытых факторов и решением для других с использованием алгоритма оптимизации наименьших квадратов. В частности, в каждой итерации алгоритм фиксирует скрытые коэффициенты и решающие элементы для скрытых факторов пользователя с использованием оптимизации наименьших квадратов, а затем фиксирует скрытые коэффициенты пользователя и решает скрытые коэффициенты элемента с использованием оптимизации наименьших квадратов.
Чередующиеся наименьшие квадраты (ALS) имеют несколько преимуществ для систем рекомендаций продукта. Он масштабируется и вычислительно эффективен, особенно для крупных и разреженных наборов данных. Он может обрабатывать неявные данные обратной связи, где известно, что взаимодействие пользователя с использованием пользователя существует или не существует, а не их конкретные оценки. Он также может обрабатывать недостающие данные, где не все пользователи оценили все элементы. Кроме того, чередующиеся наименьшие квадраты (ALS) могут предоставлять рекомендации по предметам в режиме реального времени, что делает их подходящими для систем рекомендаций в Интернете.
Product Recommendation Model.ipynb - содержит реализацию (MLLIB) обученной и протестированной системы рекомендаций по продукту в наборе данных Amazon Review Data (2018).srcdata.py - исходный код для хранения набора данных в файле natation obstic javascript (JSON) в базу данных MongoDB в качестве коллекции.srccompress.py - исходный код для извлечения стратифицированной случайной выборки указанного размера выборки из набора данных, хранящегося в базе данных MongoDB, в качестве сбора и хранения его в виде файла Parquet Apache.srcvalidate.py - исходный код для проверки точности и функциональности системы рекомендаций обученного продукта с использованием практического примера.modelproduct_recommendation_model - каталог, содержащий модель обученного машинного обучения для системы рекомендаций продукта.appapplication.py - источник веб -приложения (колба), связанное с системой рекомендаций продукта, через кластер Apache Kafka.apprecommendation.py - исходный код для кластера Apache Kafka, подключенного к обученному модели машинного обучения для системы рекомендаций по продукту, позволяющая генерировать рекомендации по продукту.templates - содержит исходные коды для веб -страниц ( login.html , dashboard.html , review.html , loading.html и recommendation.html ), отображаемое веб -приложением (Flask).static - содержит все значки и визуальные элементы, используемые веб -приложением (колба)..hintrc - файл конфигурации для настройки поведения Eslint путем указания конкретных настроек и правил. All_Amazon_Review.json.gz с сайта коллекции Amazon Review Data (2018).srcdata.py , чтобы сохранить набор данных из файла Notation объекта JavaScript (JSON) в базу данных MongoDB в качестве коллекции (убедитесь, что MongoDB уже настроен и работает).srccompress.py чтобы извлечь стратифицированный случайный выборку указанного размера из набора данных, хранящегося в MongoDB, и сохранить выборку в виде файла Apache Parquet.Product Recommendation Model.ipynb Файл IPYNB (1-16), чтобы преобразовать коллекцию и сохранить ее обратно в MongoDB для постоянного доступа (вам не нужно выполнять весь файл).apprecommendation.py на стороне (убедитесь, что кластер Apache Kafka был успешно установлен и выполнен в эксплуатации, с двумя темами, названными учетными данными и рекомендациями ).appapplication.py и откройте предоставленную ссылку на хост -порт./dashboard нажмите кнопку «Просмотр» и отправьте любой контент./loading , когда будут созданы рекомендации по продукту./recommendation для просмотра рекомендаций сгенерированного продукта. Файлы исходного кода были специально записаны для MacOS Ventura и могут потребоваться модификации для обеспечения правильного выполнения в других операционных системах.
Этот проект существует благодаря необычным людям, которые внесли свой вклад.