Ссылка на тестовый Jupiter Notebook
Задание #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/