Skip to content

Repository files navigation

Рекомендательные системы

Курс для студентов потока ДПИ22 весна 2026 год.

Практические задания включают в себя написание кода для рекомендательных систем в файлах sem1.py, sem2.py и т.д. .
Для оценки используется файлы test*.py, в них прописана логика, которую менять нельзя! Для проведения тестов и публикации результатов их исполнения используется Github Actions.

Настройка окружения

  1. Делаете форк этого репозитория через веб интерфейс github.
    Присылаете ссылку на свой форк на почту ailabintsev@fa.ru с указанием своей фамилии и группы.

  2. Клонируете свой форк на локальную машину

git clone https://github.com/{your_name}/recsys_course.git
cs recsys_course 
  1. Создаете виртуальное окружение и устанавливаете зависимости через интерфейс VsCode или CLI:
python3 -m venv .venv
source .venv/bin/activate
  1. Скачайте данные и распакуйте в папку data
wget https://storage.yandexcloud.net/labintsev/ml-latest-small.zip  
unzip ml-latest-small.zip -d data
rm ml-latest-small.zip

Подробное описание данных - здесь

Общий алгоритм вашей работы

На примере первого задания:

  • реализуете недостающий код в функциях в файле sem1.py

  • проверяете работу, дебаг по необходимости:

python sem1.py
  • локально тестируете прохождение тестов и начисление баллов
python test1.py
  • если тесты проходят, делаете коммит файла и пушите в свой репо.

  • на вкладке Actions проверяете корректное прохождение тестов и начисление баллов.

Successfull grade

Тема 1. Простейшие рекомендации

Функция random_recommend - рекомендует случайные фильмы - 3 балла (уже решено для примера).
Функция top_n_recommend - самые популярные фильмы на основе среднего рейтинга и количества оценок - 3 балла.
Функция evaluate_rec_systems - вычисляет метрику Accuracy для двух подходов: случайные и популярные фильмы - 4 балла.

Тема 2. User-Item коллаборативная фильтрация

Функция jaccard_similarity - Вычисление схожести пользователей по коэффициенту Жаккара - 2 балла.
Функция build_user_user_matrix - матрицы сходств между пользователями по коэффициенту Жаккара - 3 балла.
Функция predict_rating - Предсказывает рейтинг, который пользователь user_id поставит фильму item_id - 3 балла.
Функция predict_items_for_user - Рекомендует фильмы пользователю на основе топ-k похожих пользователей - 2 балла.

Тема 3. Контентная фильтрация

Функция vectorize_content - Преобразование текстового описания контента в вектор. - 4 балла. Функция predict_rating - Предсказывает рейтинг, который пользователь user_id поставит фильму item_id - 3 балла.
Функция predict_items_for_user - Рекомендует фильмы пользователю на основе топ-k похожих пользователей - 3 балла.

Тема 4. Матричное разложение

Функция singular_value_decomposition - разложение матрицы взаимодействий на U, S, V - 4 балла.
Функция predict_rating - Предсказывает рейтинг, который пользователь user_id поставит фильму item_id - 3 балла.
Функция predict_items_for_user - Рекомендует фильмы пользователю на основе топ-k похожих пользователей - 4 балла.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages