Содержание

  1. Обзор набора данных.
  2. Предварительная обработка данных.
  3. Сплит «Трейн-Тест».
  4. Обработка текста с помощью Bag of Words.
  5. Настройка гиперпараметров.
  6. Построение модели с использованием алгоритма наивного Байеса.
  7. Показатели эффективности.
  8. Развертывание модели в веб-приложение с помощью Flask API.
  9. Производство модели на платформе Heroku.
  10. Результаты.

Сначала мы хотим знать, что такое анализ Amazon Fine Food Review?

Этот набор данных состоит из обзоров изысканных продуктов от Amazon. Данные охватывают период более 10 лет, включая все около 500 000 обзоров до октября 2012 года. Обзоры включают информацию о продуктах и ​​пользователях, рейтинги и текстовые обзоры. У нас также есть обзоры из всех других категорий Amazon.

Обзоры Amazon часто являются наиболее общедоступными обзорами потребительских товаров. Как частый пользователь Amazon, мне было интересно изучить структуру большой базы данных отзывов Amazon и визуализировать эту информацию, чтобы быть более разумным потребителем и рецензентом.

Источник: https://www.kaggle.com/snap/amazon-fine-food-reviews

Введение

Набор данных Amazon Fine Food Reviews состоит из обзоров изысканных продуктов от Amazon.

  1. Количество отзывов: 568 454
  2. Количество пользователей: 256 059
  3. Количество продуктов: 74 258
  4. Время проведения: октябрь 1999 г. — октябрь 2012 г.
  5. Количество атрибутов/столбцов в данных: 10

Информация об атрибутах:

  1. Id
  2. ProductId — уникальный идентификатор товара.
  3. UserId — уникальный идентификатор пользователя
  4. Числитель полезности — количество пользователей, которые сочли отзыв полезным.
  5. HelpfullnessDenominator — количество пользователей, которые указали, считают ли отзыв полезным или нет.
  6. Score — оценка от 1 до 5
  7. Time — временная метка обзора.
  8. Резюме — Краткое изложение обзора
  9. Текст — Текст обзора

Цель

Учитывая отзыв, определите, является ли он положительным (рейтинг 4 или 5) или отрицательным (рейтинг 1 или 2).

[В] Как определить, положительный отзыв или отрицательный?

[Ответ] Мы могли бы использовать Score/Rating. Оценка 4 или 5 может считаться положительным отзывом. Отзыв 1 или 2 можно считать отрицательным. Отзыв 3 является нейтральным и игнорируется. Это приблизительный и косвенный способ определения полярности (положительность/отрицательность) отзыва.

Предварительная обработка данных

Предварительная обработка данных — это метод, который используется для преобразования необработанных данных в чистый набор данных. Другими словами, всякий раз, когда данные собираются из разных источников, они собираются в необработанном формате, что невозможно для анализа.

Чтобы узнать полный обзор набора данных обзора продуктов питания Amazon и характеристик, посетите мою предыдущую ссылку в блоге здесь.

Сплит Train-Test

Процедура разделения обучения и тестирования используется для оценки производительности алгоритмов машинного обучения, когда они используются для прогнозирования данных, не используемых для обучения модели.

Если у вас есть один набор данных, вам нужно сначала разделить его с помощью функции Sklearn train_test_split.

Характеристика с использованием BOW Vectorizer

Настройка гиперпараметров

мы хотим выбрать лучшую глубину и лучший min_split для лучшей производительности модели, чтобы выбрать их с помощью перекрестной проверки поиска по сетке.

Обучил модель алгоритмом NaiveBayes

Применил полиномиальный метод NaiveBayes к этим наборам функций.

Наивный Байес — это метод статистической классификации, основанный на теореме Байеса. Это один из самых простых алгоритмов обучения с учителем. Наивный байесовский классификатор — это быстрый, точный и надежный алгоритм. Наивные байесовские классификаторы обладают высокой точностью и скоростью работы с большими наборами данных.

Наивный байесовский алгоритм — самый простой и быстрый алгоритм классификации, который подходит для больших объемов данных. Наивный байесовский классификатор успешно используется в различных приложениях, таких как фильтрация спама, классификация текстов, анализ настроений и рекомендательные системы. Он использует теорему Байеса о вероятности для предсказания неизвестного класса.

Наивный Байес предполагает, что признаки условно независимы. Теоретически, если предположение неверно, производительность NB ухудшается. Но исследования показали, что даже при наличии некоторой зависимости признаков Наивный Байес дает наилучший результат.

Чтобы узнать подробную информацию об алгоритме NaiveBayes и его реализации, посетите мой предыдущийблог

После того, как мы найдем лучшие параметры с помощью CV поиска в сетке, мы хотим проверить производительность с помощью тестовых данных, в этом случае мы используем AUC в качестве показателя производительности.

Показатели эффективности

Показатели производительности используются для измерения поведения, деятельности и эффективности бизнеса. Это должно быть в форме данных, которые измеряют требуемые данные в пределах диапазона, позволяя сформировать основу, поддерживающую достижение общих бизнес-целей.

Чтобы узнать подробную информацию о показателях производительности, используемых в машинном обучении, посетите мою предыдущую ссылку в блогездесь.

Сохраните обученную модель в файле рассола для производства

Amazon_Food_Reviews_Model_Deployment

Создание проекта машинного обучения — это одно, но, в конце концов, важно то, как вы покажете свой проект миру. Документирование всего вашего проекта на GitHub — это другое дело, но развертывание вашей модели глубокого обучения в виде веб-приложения — это совершенно другая игра.

Чтобы инженеры по машинному обучению преуспели в работе, им необходимо создавать сервисы, которые могут использовать другие команды, или продукт, который люди могут использовать напрямую. По сути, цель состоит в том, чтобы предоставить модель как услугу, и для этого существует концепция, называемая API. API — это способ взаимодействия компьютерных систем друг с другом по интернет-протоколам. Они действуют как агент, который передает информацию от пользователя на сервер, а затем снова от сервера к пользователю, возвращая ответ. Flask предоставляет такую ​​возможность. Flask будет действовать как API между вашей моделью и файлом HTML.

Мы начинаем с создания папки проекта, в которой мы определяем все зависимости в файле requirements.txt. Чтобы убедиться, что все зависимости изолированы от нашего приложения, мы создаем виртуальную среду для нашего рабочего пространства.

Для развертывания мы хотим обучить нашу модель и сохранить результаты в файле рассола, и эти файлы рассола используются для прогнозирования новых обзоров в производстве.

Шаги

  • Создайте репозиторий GitHub (необязательно)
  • Создайте и выберите модель, используя данные Титаника.
  • Создайте приложение Flask.
  • Локальное тестирование приложения Flask (необязательно)
  • Развернуть на Heroku.
  • Тестовое рабочее приложение.

Результаты

Положительные отзывы

Отрицательные отзывы

Я развернул приложение на платформе Heroku, чтобы посмотреть здесь.

Чтобы узнать полный обзор набора данных обзора продуктов питания Amazon и характеристик, посетите мою предыдущую ссылку в блоге здесь.

Чтобы узнать подробную информацию о показателях производительности, используемых в машинном обучении, посетите мою предыдущую ссылку в блогездесь.

Чтобы понять полный код, перейдите по моей ссылке GitHub.

Спасибо за чтение и ваше терпение. Надеюсь, вам понравился пост, дайте мне знать, если в моем посте есть ошибки.

использованная литература

  • Прикладной ИИ
  • Википедия
  • Курсера
  • Лагерь данных

Контакты: Электронная почта LinkedIn Github Каталог Twitter

Блог также опубликован по адресу https://sachin-d-n.github.io.