Для начинающих: Создание системы рекомендаций фильмов (MVRS) на основе контента с нуля.

Чтобы начать какой-либо проект, сначала мы обобщим весь этот поток проекта в уме, составив ментальную карту для этого проекта. Что, как и почему нужно сначала ответить на вопрос о проекте, прежде чем начинать его. Обобщив все это, мы приступим к кодированию.

Итак, давайте начнем со знакомства с типами рекомендательных систем.

Типы рекомендательной системы:

В системе рекомендаций используются два основных метода, известные как фильтрация на основе контента и совместная фильтрация:

1. На основе контента:

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

2. Совместная фильтрация:

Чтобы устранить некоторые ограничения фильтрации на основе содержимого, совместная фильтрация одновременно использует сходство между пользователями и элементами для предоставления рекомендаций. Модели совместной фильтрации могут рекомендовать элемент пользователю A на основе интересов аналогичного пользователя B. Основное преимущество заключается в том, что они автоматически изучают вложения пользователей, без необходимости ручного проектирования.

3. Гибрид:

Это сочетание контентной и совместной фильтрации.

Начиная со среды кодирования

Редактор кодирования, который я использовал для этого проекта, — это редактор кода Kaggle и идеал PyCharm. Вы можете использовать Jupyter Notebook, Google Collab и другие редакторы Python для создания этого проекта.

Для этой системы рекомендаций фильмов (MVRS) мы будем использовать «фильтрацию на основе контента», и, как и каждый проект машинного обучения, она также следует «конвейеру».

Трубопровод

Получение набора данных

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

Для этого проекта мы получаем набор данных из Kaggle Movies Daily Update Dataset. Набор данных в Kaggle содержит хорошо размеченные данные с контекстом наборов данных. Вы можете использовать другой набор данных, например TMDB 5000 Movie Dataset и т. д.

Данные предварительной обработки:

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

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

Векторизатор:

Векторизатор также является частью предварительной обработки, используемой при обработке естественного языка (NLP) (для лучшего понимания я сделал его отдельной частью) и анализе текста. для преобразования набора текстовых документов в векторы числовых признаков. Это делается путем анализа встречаемости слов или терминов в документах и ​​кодирования их как числовых значений.

В этом проекте мы будем использовать стемминг и векторизатор текста (CountVectorizer) для преобразования наших «текстовых» данных в «числа».

Построение модели:

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

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

Модель тестирования:

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

Мы будем тестировать проект как в Kaggle, так и в Python IDE «PyCharm», куда мы импортируем все проанализированные данные из вышеперечисленных 4 шагов, используя их для проверки нашей работы.

Развертывание:

Этапом развертывания для этого проекта является размещение локального сервера с потоковой передачей (это библиотека Python с открытым исходным кодом, которая используется для создания веб-инструментов визуализации данных и машинного обучения) и настроить сайт так, как мы хотим.

Заключение:

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

Весь раздел кодирования будет находиться на платформе Kaggle (здесь), где подробно объясняется каждая строка кода.

Запускаем кодировку:

«Movies Daily Update Dataset» откройте этот сайт и нажмите Блокнот, чтобы создать свой собственный блокнот. Нажмите здесь откройте мой блокнот в соседнем окне и начните программировать. (●'◡'●)

Проект после развертывания:

Спасибо за чтение!! надеюсь, вы сможете сделать больше проектов ML!

Вы можете найти меня в LinkedIn -> здесь