Тестовое задание
на Эксперта курса по ML
karpov.courses

Задание #1
Дано:
В базе данных имеется три таблицы:

1. Таблица с данными о пользователях (user):
  • id - уникальный идентификатор пользователя (primary key)
  • gender - пол
  • age - возраст
  • country - страна
  • city - город
  • exp_group - экспериментальная группа
  • os - операционная система
  • source - источник трафика

2. Таблица с данными о постах (post):
  • id - уникальный идентификатор поста (primary key)
  • text - текст поста
  • topic - тема поста

3. Таблица с данными о действиях пользователей (feed_action):
  • user_id (——>) user (id) - идентификатор пользователя
  • post_id (——>) post (id) - идентификатор поста
  • action - совершенное в сети действие
  • time - время действия
Задание:
Найдите город, пользователи которого в возрасте 36 лет 2021-12-01 числа просмотрели запись на тему `covid` меньше всего раз относительно других городов.
Задание #2
Дано:
Воспользуемся доверительными интервалами, чтобы сделать более точные выводы о метриках модели.

Это задача предсказания средней цены в области на дом. Давайте оценим 95-процентный доверительный интервал на MSE Ridge-регрессии для этой выборки. Будем использовать бутстрэп для этого.

Для этого в цикле будем генерировать бутстрэп-выборки для обучения модели (то есть брать объекты из выборки с возвращением). В качестве тестовых объектов будем брать оставшиеся объекты. Каждый раз будем обучать модель и оценивать качество.
Задание:
Реализуйте такой код для 95-процентного доверительного интервала на MSE.

Используйте 1000 итераций генераций выборки и обучения модели. Данные не обрабатывайте. Полезными методами будут np.random.choice для генерации индексов бутстрэп-выборок (не забудьте про «генерацию с возвращением»), np.setdiff1d для получения остатка выборки.
Задание #3
Чему равно значение метрики AUC ROC у классификатора, который для любого объекта возвращает значение 0.97, если доля положительного класса в выборке составляет 4%?
Опишите свои рассуждения как можно точнее, с расчетами, если они потребуются.

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

Она должна иметь следующую сигнатуру: def get_pretrained_model(model_name: str, num_classes: int, pretrained: bool=True):

Будем считать, что на вход могут прийти четыре различных model_name: alexnet, vgg11, googlenet и resnet18. Для каждого из них нужно вернуть соответствующую модель из зоопарка моделей torchvision.

Чтобы понять, как именно модифицировать созданные объекты, посмотрите на исходный код для моделей:
https://pytorch.org/hub/pytorch_vision_resnet/
https://pytorch.org/hub/pytorch_vision_alexnet/
https://pytorch.org/hub/pytorch_vision_vgg/
https://pytorch.org/hub/pytorch_vision_googlenet/

Тестовое задание на Эксперта курса по ML в karpov.courses. Ознакомьтесь с примерами реальных тестовых заданий, которые предлагаются кандидатам. Узнайте, какие задачи могут встретиться и как они связаны с будущей работой. Это поможет лучше подготовиться к собеседованию в karpov.courses и понять ожидания работодателя.
хочешь поделиться решением или заданием с собеседования?

Оставь свои контакты через форму, и я свяжусь с тобой в течение 24 часов
© No Data No Growth, 2024