Создание рекомендательной системы с использованием машинного обучения
Введение
Мы все видели множество автоматических рекомендательных систем повсюду, несколько хорошо известных из них — Netflix, Amazon, Youtube, LinkedIn и т. д. В этой серии статей давайте посмотрим, как создать рекомендательную систему с использованием машинного обучения с нуля. В рамках этой серии я хотел бы показать, как мы можем создать структуру для применения различных алгоритмов машинного обучения к реальному набору музыкальных данных для прогнозирования рекомендаций плейлиста/песен. Мы будем использовать четыре основных подхода, таких как фильтрация на основе контента, совместная фильтрация, методы на основе моделей и глубокие нейронные сети.
Шаги, которые мы выполняем для создания рекомендательной системы, приведены здесь:
- Создайте среду разработки с необходимыми библиотеками.
- Получите набор музыкальных данных реального мира и исследуйте.
- Создание и обучение моделей машинного обучения.
- Оцените влияние размера набора данных на модели машинного обучения
- Оцените модели, используя различные метрики.
- Разверните обученную модель для общего пользования.
В этой статье давайте начнем с создания среды разработки и установки всех необходимых библиотек.
Часть 1. Создание среды разработки
Мы хотели бы избежать ситуаций работает на нашей машине и попытаться найти систему, доступную для всех, чтобы они могли попробовать запустить этот код проекта. Я использовал Google Colab для других проектов. По сути, это бесплатная среда для ноутбуков Jupyter, полностью работающая в облаке. Я также использовал GitHub Codespaces, но я хотел бы попробовать Gitpod для этого проекта, потому что он предоставляет рабочее пространство, которое включает в себя: исходный код, оболочку Linux с root/sudo, файловую систему, полный опыт редактирования VS Code, включая расширения, языковую поддержку. и все другие инструменты и двоичные файлы, работающие в Linux. Нажмите на ссылку, если хотите настроить среду разработки Codespaces. Давайте посмотрим, как создать и настроить ваше первое рабочее пространство Gitpod ниже.
Я предполагаю, что у вас уже есть учетная запись GitHub, если не зарегистрируйте бесплатную учетную запись здесь. Как только вы получите учетную запись GitHub, войдите в свою учетную запись GitHub в браузере и создайте новый репозиторий, назовем его RecSys. После его создания вы попадете на кодовую страницу этого репозитория.
Затем давайте добавим кнопку «Открыть в Gitpod», чтобы упростить запуск рабочей области Gitpod для этого проекта, как показано ниже, заменив «url-проекта» на URL-адрес репозитория GitHub. Кроме того, мы также можем установить расширение браузера Gitpod.
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#<project-url>)
Ex: [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/nsanka/RecSys)
Индивидуальная настройка проекта
Нажмите кнопку Добавить файл -> Создать новый файл в основной папке вашего репозитория. В поле имени файла введите .gitpod.yml. Этот файл будет использоваться для применения настройки среды рабочей области для любого пользователя, который использует этот конкретный проект. Подробнее о настройке рабочих пространств Gitpod можно прочитать здесь.
# Custom Docker Image
#image:
#file: .gitpod.Dockerfile
# List the start up tasks.
# Learn more https://www.gitpod.io/docs/config-start-tasks/
tasks:
- name: Check Setup
init: |
python -m pip install --upgrade pip
# Add commands to Setup Python Environment
command: |
clear
echo "=============="
echo " Welcome "
echo "=============="
pyenv versions
echo ""
# List the ports to expose.
# Learn more https://www.gitpod.io/docs/config-ports/
ports:
# jupyter
- port: 8888
onOpen: ignore
# Install VSCode Extensions
vscode:
extensions:
- ms-azuretools.vscode-docker
- ms-python.python
Настройка среды Python
В рабочих пространствах Gitpod уже установлен Python, а также есть pyenv, который можно использовать для управления версиями Python. Мы создадим новый файл в основной папке репозитория и назовем его requirements.txt, чтобы определить все пакеты Python, которые нам нужны для этого проекта.
# requirements.txt file altair==4.1.0 matplotlib==3.5.0 numpy==1.19.5 openTSNE==0.6.1 pandas==1.2.5 pip==21.3.1 plotly==5.4.0 requests==2.25.1 scikit-learn==0.24.2 scipy==1.7.3 spotipy==2.19.0 streamlit==1.2.0 seaborn==0.11.2 tqdm==4.62.3 urllib3==1.26.7 wordcloud==1.8.1
Мы добавляем следующие команды в файл «.gitpod.yml» в разделе «task-›init», чтобы установить требуемую версию Python и необходимые модули, упомянутые в «requirements.txt», используя pip.
# Install Python 3.7.2 pyenv install -v 3.7.2 # Set Python 3.7.2 as default pyenv global 3.7.2
# Install all libraries python -m pip install -rrequirements.txt
Индивидуальная настройка контейнера
Этот шаг является необязательным. По умолчанию Gitpod создает рабочую область со стандартным образом Docker под названием «Workspace-Full», если мы не указываем какой-либо Dockerfile в файле «.gitpod.yml». Этот стандартный образ докера включает в себя такие инструменты, как Docker, Go, Java, Node.js, C/C++, Python, Ruby, Rust, PHP, а также Homebrew, Tailscale, Nginx и некоторые другие.
Если вы хотите создать собственный контейнер, нажмите кнопку Добавить файл -> Создать новый файл в основной папке вашего репозитория. В поле имени файла введите .gitpod.Dockerfile. Ваш пользовательский контейнер может содержать все, что вы хотите. Это очень полезно, если вы используете фреймворк или SDK, которых нет в стандартном образе, или если вам нужно установить определенный пакет. Я бы порекомендовал использовать стандартное изображение Workspace-Full в качестве базового изображения, а затем построить его поверх него, как показано ниже. Если вы хотите начать с другого фреймворка, отличного от стандартного образа, проверьте готовую конфигурацию контейнера для Gitpod, которая доступна в репозитории workspace-images.
FROM gitpod/workspace-base:latest # [Optional] Uncomment this section to install additional OS packages. # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ # && apt-get -y install --no-install-recommends <your-package-list-here>
Открытое рабочее пространство
У нас все настроено и мы готовы запустить Gitpod Workspace. Нажмите кнопку «Открыть в Gitpod», чтобы запустить рабочее пространство Gitpod, вам будет предложено войти в учетную запись Gitpod. Мы используем GitHub в качестве провайдера, и ваше рабочее пространство откроется в новой вкладке.
Это займет несколько секунд, и вы увидите свое рабочее пространство в браузере, как показано на изображении ниже. Он также показывает, как открыть терминал.
На этом наша настройка среды разработки для этого проекта с использованием Gitpod Workspaces завершена, мы можем быстро открыть код проекта в предопределенной среде, собрать и протестировать его.
Следующий шаг
В следующей статье мы увидим, как получить набор музыкальных данных и выполнить исследовательский анализ данных.
Если вам нравится читать мои статьи и вы хотите поддержать меня, рассмотрите возможность регистрации, чтобы стать участником Medium. Это 5 долларов в месяц и дает вам неограниченный доступ к историям на Medium. Пожалуйста, зарегистрируйтесь, используя мою ссылку, чтобы поддержать меня: https://nsanka.medium.com/membership.