Задачи DS - Собеседования, Соревнования, ШАД
6.69K subscribers
36 photos
9 files
61 links
Чат: @zadachi_ds_chat
Реклама: @menshe_treh
Download Telegram
Форма к лету имеется, фото к посту- тому подтверждение❤️

Т-Банк стажировка: ML-направление 2025
дедлайн: 13 мая
сссылочку: жмяк
Условия и ответы👇
Какой вид имеет функция регрессии, формируемая классическим регрессионным деревом?
Линейной
Кусочно-постоянной
Кусочно-линейной
Полиномиальной

Зачем нужно проводить обрезку дерева?
Для повышения точности дерева на обучающей выборке
Для повышения обобщающих способностей дерева
Для увеличения однородности терминальных вершин
Для увеличения степени гладкости модельной функции регрессии или границ классов

Мы обучаем дерево решений
При увеличении глубины дерева у модели
bias растёт, variance снижается
bias снижается, variance растёт
bias не изменяется, variance снижается
bias не изменяется, variance растёт
bias снижается, variance не изменяется
bias растёт, variance не изменяется

Что работает о быстрее на большом датасете k-Fold cv или LOO CV?
k-fold CV
LOO CV
Одинаково быстро
Одинаково медленно

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

Пусть x- точка, лежащая на границе между классами, формируемыми логистической регрессией
Чему равно отношение шансов для этой точки?
0
1
0.5
Бесконечность

Значение логит-функции для некоторого примера оказалось равным 0
Что можно сказать о вероятности принадлежности этого примера к позитивному классу
logit(p)=sigma^(-1)(p)=ln(p/(1-p))
Равна 0
Равна 1
Равна 0.5
Ничего нельзя сказать

Чему равно отношение шансов для бинарного классификатора?
Отношению апостериорных вероятностей классов
Отношению априорных вероятностей классов
Отношению функций правдоподобия классов
Отношению линейных комбинаций признаков

Если мы хотим отобрать признаки нам стоит использовать L_1 или L_2 регуляризацию?
L_1
L_2
Любой из вариантов

Какова вероятность ошибки модели, являющейся голосованием трёх алгоритмов, ошибки которых 0.1 0.2 0.3 соответственно?
0.2
0.099
0.006
0.098

(больше задач в этом посте)
P.S.: вещаю с шашлычных полей, чего и вам желаю;)

разборы по алгоритмам

@zadachi_ds
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌13💅85
Вопросы с Data Science собеседования в Т-Банке
Напишите реализацию класса SparseVector

class SparseVector:
def __init__(self, elements: list[int]) -> None:
pass

def dot_product(self, other_vector: 'SparseVector') -> int:
pass

data1 = [0, 0, 3, 40, 0, 0, 0, 5, 0]
data2 = [1, 0, 0, 2, 0, 14, 0, 0, 0]

sparse_vec1 = SparseVector(data1)
sparse_vec2 = SparseVector(data2)
product_result = sparse_vec1.dot_product(sparse_vec2)
# Ожидаемый результат: 80

class SparseVector:
def __init__(self, elements: list[int]) -> None:
self.non_zero = {i: val for i, val in enumerate(elements) if val != 0}

def dot_product(self, other_vector: 'SparseVector') -> int:
common_indices = set(self.non_zero.keys()) & set(other_vector.non_zero.keys())
return sum(self.non_zero[i] * other_vector.non_zero[i] for i in common_indices)

Как бустинги обрабатывают категориальные признаки?

например, CatBoost и LightGBM имеют встроенную обработку, а вот XGBoost — требует ручного кодирования
Дайте объяснение target encoding

значение категориального признака кодируется в зависимости от его влияния на целевую переменную(категории заменяются на среднее/медиану таргета для каждой группы)

Напишите формулы энтропии и индекса Джини в узле дерева

H(S)= -Sigma_{i=1}^N(p_i*log(p_i))
G(S)=1-Sigma_{i=1}^N(p_i^2),
где S-текущий узел, N-кол-во классов, p_i- доля объектов класса i в узле S

Как определяется наилучшее разбиение в дереве?

максимизацией для Information Gain, максимизируем "информативность" разделения

Как обучается случайный лес?

Случайный лес обучается путём создания множества деревьев решений, каждое из которых обучается на случайной подвыборке данных aka бутстрэп и выбирает признаки для разбиения узлов из случайного подмножества. Итоговый результат определяется голосованием (классификация) или усреднением (регрессия) предсказаний всех деревьев
Как дать оценку важности признаков?

Для линейных моделей важность признаков оценивают по абсолютным значениям весов (после масштабирования данных), для деревьев/леса — по частоте использования признака в разбиениях и суммарному уменьшению примеси (Gini/Information Gain), нормированному на число деревьев.
Permutation importance — универсальный метод: для каждого признака случайно перемешивают его значения и измеряют, насколько падает точность модели; чем сильнее падение, тем важнее признак
Какая есть функция потерь для деревьев?😜


@zadachi_ds
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥227👍5💅4🌚1
Задачи на джуна Risk Quants
Сбера🤤#cбер

@zadachi_ds
💅14🫡12🔥71
Что такое модуль pickle?
эт встроенный модуль, который позволяет сохранять aka сериализовать объекты в файл и затем загружать aka десериализовать их обратно в программу ex. ниже👇

import pickle
animal_records = [
{'animal_id': 101, 'pet_name': 'Whiskers'},
{'animal_id': 102, 'pet_name': 'Mittens'}
]

with open('animals_db.pkl', 'wb') as db_file:
pickle.dump(animal_records, db_file)

with open('animals_db.pkl', 'rb') as db_file:
loaded_records = pickle.load(db_file)

Каковы скорости поиска в словаре и списке?
списки дают O(n), т.к. проверяют элементы последовательно, пока не найдут нужный, а словари - O(1): они находят элементы благодаря хеш-таблицам
В чём разница между модулем и пакетом в python
модуль — файл/набор файлов, импортируемых вместе
import math
а пакет — каталог с модулями
from sklearn import cross_validation

В чем отличие между словарями и JSON?
dict в питоне— это неупорядоченный набор пар ключ-значение, тогда как JSON представляет собой строковый формат для передачи данных

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

def foo(x):
    return x * 2
arr = [4, 5, 6]
list(map(foo, arr))
#[8, 10, 12]

@zadachi_ds
🌭167🔥3💅2
Tralalero Vision 2025: роадмап по компьютерному зрению

1️⃣ Python. Без него - никуда: циклы, ООП, исключения, numpy, pandas, matplotlib, надо знать азы pytorch, tensorflow
2️⃣OpenCV — "мотор" компьютерного зрения. Тут важно понимать, как работают изображения (пиксели, каналы, цветовые пространства), ну и освоить морфологию, фильтры, поиск контуров. В качестве практики можно сделать проекты с распознаванием объектов или AR-фильтрами
3️⃣Без линейной алгебры глубокие модели — "черный ящик". Надо потренироваться в задачках на SVD и преобразования с матрицами
4️⃣В качестве начальных шагов разберитесь в архитектурах: LeNet и EfficientNet + пригодятся знания градиентов и методов оптимизации
5️⃣Спец-темы CV — ваш профайл Углубляйтесь в то, что цепляет: есть задачи на 3D Vision/обнаружения/сегментации итд. Ключ к успеху понимать от и до именно ваше направление
6️⃣Теория без практики имеет нулевой импакт на ваше развитие. После каждого этапа — проект/кейс/задача
материалы 👇
документация OpenCV
Standford course по нейронкам
Multi-Object Tracking
Anomaly Detection
3D Reconstruction
Real-Time Gesture Control для AR
данные: Kaggle, COCO dataset
тестовые вопросы по DL от Дьяконова, курс по DL тоже от Дьяконова А.Г.

@zadachi_ds
Please open Telegram to view this post
VIEW IN TELEGRAM
💅144🔥4
RecSys: кейсы и задачи. Часть 1.

Кратко напомню.
рекомендательные системы работают в два этапа:
1.генерация кандидатов: отбор потенциально релевантных товаров/постов
2.ранжирование: сортировка по вероятности взаимодействия:р,p(click)
Генерация кандидатов использует коллаборативную фильтрацию или легковесные модели, а ранжирование предсказывает p(click|user, item) на основе неявных сигналов (клики, просмотры)
К проблемкам можно отнести: холодный старт: когда новые элементы не имеют истории → используются текстовые/визуальные эмбеддинги или графовые методы (анализ соцсвязей)+логируются фичи и метки (клик/не клик) во избежание training/serving skew.
методы:
матричные разложения (MF) устарели → заменены нейронками
гибридные подходы: ручные фичи aka handjob разработки + графовые методы и dl + это эксперименты: анализ данных и A/B-тесты, оптимизация идёт под прокси-метрики

Кейсы
У пользователей низкая конверсия просмотра товара в покупку. Система полагается только на коллаборативную фильтрацию по истории покупок. Новые юзеры и новые товары получают плохие рекомендации ("популярное" или случайное). Нет учета UGC (User-Generated Content), например, просмотров или добавлений в корзину. Нужно повысить средний чек и конверсию.
можно внедрить гибридную систему: 1) для холодного старта пользователя: короткая анкета о интересах + демографические данные (если есть) + рекомендация популярного/трендового в его сегменте. 2) для item cold start: контентная фильтрация (атрибуты товара: категория, бренд, цена) + похожие товары по описанию (NLP эмбеддинги). 3) для активных пользователей: усилить user-based коллаборативную фильтрацию на основе implicit feedback (просмотры, время, корзина, wishlist) и explicit feedback (рейтинги, отзывы)+ввести re-ranking по цене/прибыльности для повышения среднего чека. Ну и важно тестировать через A/B тесты на метриках: например, CTR, CVR, средний чек, diversity.

Пользователи быстро "просматривают" рекомендации, churn rate высокий. Текущая Latent Factor Model хорошо работает для "ядровой" аудитории, но игнорирует контекст (время суток и устройство) и последовательность взаимодействий. Есть проблема over-specialization (пользователь в "пузыре" жанров). Нужно увеличить время использования и глубину потребления контента.
1.добавим context-aware рекомендации: учитывать время (утро/вечер), день недели, устройство (мобильное/ТВ) при выборе модели
2.внедрим sequence modeling (RNN, Transformers) для session-based рекомендаций, предсказывая "следующий трек/фильм" в сессии
3.боремся с пузырем фильтров: явно добавлять diversity в выдачу (новые жанры, локальный контент) через re-ranking с penalty за слишком похожие items
4.используем dl для оптимизации долгосрочного engagement (время просмотра, возврат)
по метрикам: время сессии, глубина просмотра (кол-во контента), retention rate, serendipity

Это база.
Как решить проблему холодного старта?
Анкетирование: Задать вопросы о предпочтениях при регистрации или первом входе
Демография: Использовать известные данные (ex., пол, возраст) для рекомендаций, популярных среди похожих пользователей
Популярный контент: Показывать топ товаров, пока не накопится пользовательская история

Модель рекомендаций для новых пользователей
Collaborative filtering (user-based) не подходит, т.к. требует данных о связях и сходстве между пользователями, которых у нового юзера нет
Контентная модель (похожие товары по картинкам) не работает, т.к. нужны истории просмотров/покупок для анализа, которой опять-таки нет
LFM предпочтительна. Эта модель, основанная на скалярном произведении эмбеддингов пользователей и товаров, лучше справляется с отсутствием истории. Для новичка можно подставить:1.эмбеддинг, сгенерированный на основе анкеты или демографии; 2.усредненный эмбеддинг его демографической группы;3.общий "стартовый" вектор эмбеддинга, что даёт релевантные рекомендации сразу, даже без собранных данных


@zadachi_ds
🥰115💅4
#кейсы
Пользователи хотят находить похожие товары из ассортимента Wildberries, просто загружая фотографии с одеждой
Обнаружение одежды — YOLOv8 детектирует предметы гардероба на фото (штаны карго, спортивки, свитшоты и другой модный зумерский шмот)
Поиск аналогов — CLIP/ConvNeXt преобразует кропы в эмбеддинги, а FAISS ищет топ-k похожих товаров в базе Wildberries
Визуальное сравнение — LPIPS/SSIM оценивает сходство изображений
Ранжирование — финальный рейтинг: 60% вес эмбеддингов + 40% визуальная схожесть (соотношение определяется ручками)

Метрики: [email protected] для YOLOv8, Top-k Accuracy , среднее время ответа

Интеграция:
Telegram-бот возвращает: список найденных вещей на фото, ссылки на Wildberries (например: "Куртка из вашего фото ≈ модель за 5 490 ₽ в на складах в SPb")
Допопции: «Подобрать капсулу», «Похожие»

Деплой:
FastAPI на VPS, ежедневное обновление базы товаров
Арендаторы переплачивают из-за завышенных цен
ex, в Питере среднее отклонение от рыночной стоимости достигает примерно 20 процентов летом
построим ML-модель, предсказывающая справедливую цену на основе данных Авито:

Парсинг — сбор параметров: район, площадь, этаж, ремонт
Фичи — One-hot для категорий, гео-расстояние до Эрмитажа, ключевые слова («евроремонт»)
Модель — CatBoost с кросс-валидацией по округам

Метрики: MAE, R², средняя ошибка

Интеграция:
Пользователь отправляет боту ссылку и приходит ответ:
ex.
«/predict
https://www.avito.ru/rent/babka_sraka_flat/123456»
Ответ:
Справедливая цена: 65 000 ₽/мес (текущая цена завышена на 17%)
Центральный район, 7 мин до метро "Гостиный Двор"
Характеристики: 2 комнаты, евроремонт, высота потолков 3.2 м

Деплой:
FastAPI + Docker на Railway, мониторинг через Prometheus, кэширование данных по ID объявлений
@zadachi_ds
🥰258💅6
Гид по специализациям в Data Science

Как выбрать подходящее направление?
Прежде чем рассматривать конкретные роли, важно понять:
Вам интересна теоретическая или прикладная работа?
Предпочитаете ли вы работу с данными, моделями или бизнес-аналитикой?
Насколько для вас важна инженерная составляющая?
Data Analyst
Преобразуем данные в бизнес-инсайты, поддерживаем принятия решений
Стек:

построение отчетов и дашбордов (Tableau, Power BI)

проведение A/B тестов

анализ ключевых метрик (DAU, LTV, retention)

знание SQL и основ статистики

ML Researcher
Разрабатываем новые алгоритмы машинного обучения и совершенствовуем существующие подходы, ну и создаём архитектуры нейронок (трансформеры, GAN, RL)+публикация научных работ
Стек:

Python и фреймворки (PyTorch, TensorFlow)

принципы работы вычислительных систем (GPU/TPU)

высшмат (линейная алгебра, теория вероятностей)

умение формализовать исследовательские задачи

Data Engineer
Тут построение и поддержка инфраструктуры для хранения и обработки данных
Стек:

проектирование хранилищ данных (Data Lakes, DWH)

настройка ETL/ELT процессов

работа с распределенными системами (Spark, Kafka)

знание SQL и языков программирования (Python, Java, Scala)

ML Engineer
Переносим исследовательские модели в prod и на нас- их обеспечение стабильной работы в промышленной среде
Стек:

оптимизация моделей для production (квантование, дистилляция)

настройка CI/CD процессов для ML

работа с облачными платформами (AWS, GCP

Docker и Kubernetes

MLOps Engineer
Основная деятельность- обеспечить полный жизненный цикл ML-моделей в проде
Стек:

автоматизация процессов обучения и развертывания моделей

настройка мониторинга и алертинга

оптимизация использования вычислительных ресурсов

MLflow, Kubeflow

просуммируем, что имеем в ds: обычный ML — когда алгоритмы учатся на данных и делают прогнозы (как яндекс.Музыка угадывает, что вам хотелось бы послушать Пошлую Молли), статистический анализ — ищем скрытые закономерности и проверяем гипотезы, инженерия данных, прога — автоматизируем всё, что шевелится, и визуализация — превращаем циферкы в красивые графики

Для любителей фундаментальных исследований: ML Researcher
Для тех, кто хочет видеть практическое применение моделей: ML Enginee
Для специалистов по работе с данными: Data Engineer
Для аналитиков, ориентированных на бизнес: Data Analyst
Для инженеров, обеспечивающих надежность: MLOps Engineer

Полезные статьи по теме:
یک
ב
س
ד
پنج
ו
@zadachi_ds
💅146🤩5❤‍🔥1💋1
Цикл прохождения: Middle WB MLops направления🍇
#wildberries
Вакансию нашёл в тгк канале при вузике(я еврейский мальчик из мгу)

В момент подачи на вакансию имелся годовой опыт работы с командами: 3 месяца стажки с альфа банке, 6 месяцев в Сбере джуном и месяц накручен

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

что такое Docker и зачем? платформа для создания или запуска контейнеров - изолированных сред с приложением и зависимостями, обеспечивает консистентность окружения и переносимость

ограничения Docker?
меньшая изоляция чем у VM (общее ядро, риски безопасности), нельзя запустить приложение под другое ядро ОС без доп. усилий, сложности с GUI, данные по умолчанию непостоянны (нужны volumes)

что такое манифест?
файл (YAML/JSON), декларативно описывающий желаемое состояние объекта в кластере (ex., Deployment с числом реплик и образом)

как k8s взаимодействует с Docker?
k8s командует container runtime (Docker/containerd/CRI-O) через CRI, где и когда запускать или останавливать контейнеры на нодах

зачем Ingress?
для управления входящим внешним трафиком: маршрутизация на основе хоста/пути (L7) и TLS-терминация (реализуется Ingress Controller'ами типа Nginx, Traefik)

зачем балансировщики?
распределять нагрузку между репликами сервиса и предоставлять единую точку входа для клиентов (внутри кластера - Service, снаружи - Service типа LoadBalancer или Ingress)

провайдеры k8s кластеров?
управляемые облачные (GKE, EKS, AKS), он-премис (kubeadm, OpenShift), дистрибутивы (RKE)

как взаимодействуют ML модели и k8s?
модель упаковывается в Docker-контейнер с serving-кодом; деплоится в k8s (Deployment для реплик и отказоустойчивости, Service для доступа); обеспечивает масштабируемость, отказоустойчивость и управление версиями моделей

разница многопоточность vs многопроцессорность?
потоки легковесны, делят память, но ограничены GIL
процессы тяжелее, изолированы, обходят блокировку


Airflow: платформа для оркестрации, планирования и мониторинга рабочих процессов, описываемых как код (DAG), состоящих из задач с зависимостями

MLflow- управление ML lifecycle: Tracking (логирование экспериментов), Projects (упаковка кода), Models (формат + Registry для управления версиями) и Serving

как Airflow и MLflow работают вместе?
Airflow задаёт пайплайн (запуск обучения, деплой), MLflow- отслеживает эксперименты и управляет моделями; задачи Airflow взаимодействуют с MLflow Tracking/Registry


Всё длилось в районе 1.5 часика, потом пошёл играть в цивилизацию🤓

От момента подачи до оффера прошло 2 недели, в целом, оперативно

@zadachi_ds
24💅5🤓4💘2👍1🌚1
Нейронки для всего
Уже развёрнутые веб-сервисы
выбираешь задачу -> загружаешь данные
->получаешь ответ

@zadachi_ds
💅8👍3
Изи стажка в OzonTech💙
#ozon
Недавно кончилась моя стажка в озоне, поэтому напишу кратко про сам отбор и впечатления...

Параллельно с учёбой на 3 курсе искал подработку, наткнулся на сайт с вакансиями, откликнулся на DS поиска и рекомендаций звучало хайпово.

Закинул резюме и оставил tg на сайте. Hr написала спустя месяц:^) я уж и забыл, что вообще подавался. В резюме были общие слова про место учёбы(финашка), ну и 2 курса по машинке, которые брал факультативно

Сначала был созвон с рекрутером(минут 20, тех вопросов не было)
Потом- тех собес; были теорвопросы по sql, простой quizz по видам ключей и joinов, терия ml и pytorch👇
1️⃣написать свёрточную сеть с одним свёрточным слоем и линейным
(параметры задавал тимлид в ходе интервью)
model = torch.nn.Sequential(
torch.nn.Conv2d(3, 16, 3),
torch.nn.ReLU(),
torch.nn.Flatten(),
torch.nn.Linear(16 * 30 * 30, 10)
)

2️⃣дан кусок кода. нужно отдебажить
for epoch in range(10):
y_pred = model(x)
loss = torch.nn.functional.mse_loss(y_pred, y)
loss.backward()
optimizer.step()
# тут надо вставить optimizer.zero_grad() перед backward

3️⃣написать класс логрегрессии
class LogisticRegression(nn.Module):
def __init__(self, input_dim):
super().__init__()
self.linear = nn.Linear(input_dim, 1)

def forward(self, x):
return torch.sigmoid(self.linear(x))

def fit(self, X, y, epochs=100, lr=0.01):
criterion = nn.BCELoss()
optimizer = torch.optim.SGD(self.parameters(), lr=lr)

for epoch in range(epochs):
optimizer.zero_grad()
outputs = self(X)
loss = criterion(outputs, y.unsqueeze(1))
loss.backward()
optimizer.step()

def predict(self, X, threshold=0.5):
with torch.no_grad():
return (self(X) >= threshold).float()

def predict_proba(self, X):
with torch.no_grad():
return self(X)

Работать было действительно круто, хоть и не без сложностей😶
Больше всего зацепило, что сразу попал в серьёзные проекты с реальной аудиторией в миллионы юзеров...приходилось думать над каждым мельчайшим нюансом, потому что любая ошибка могла повлиять на многих людей
Ещё была топ команда: все ребята были на одной волне, постоянно что-то предлагали и помогали разобраться в сложных моментах+был доступ к куче обучающих курсов(по сути как в Сбере), даже успели отправить на конференцию

зп: 80к гросс фултайм, считаю, для начала карьерного пути- это хорошо🤓
@zadachi_ds
Please open Telegram to view this post
VIEW IN TELEGRAM
43💅11👍7
Трансформеры — это база в 2025🤖

без них даже на джун-роль не возьмут, так что пробежимся по must-know

Кратко о сути:

текст сначала разбивается на токены (слова или их фрагменты), которые превращаются в эмбеддинги — плотные числовые векторы, фиксирующие базовое значение слова
главное чудо происходит в self-attention:
тут каждое слово формирует три вектора: Запрос (Q) (что ищу?),
Ключ (K) (как найти?),
Значение (V) (что знаю?)
🔜 Q текущего слова сравнивается (скалярное произведение) с K каждого слова в предложении, вычисляя их релевантность
🔜 Эти оценки превращаются в веса внимания (softmax), показывающие, какое влияние оказывают другие слова на текущее
🔜 Итоговое представление слова — динамическая сумма векторов V всех слов, взвешенная по важности

Так "ключ" (дверной) в контексте "замок" и "дверь" кардинально отличается от "ключ" (музыкальный) рядом с "ноты" и "скрипичный"
multi-head attention использует несколько независимых наборов параметров (голов), чтобы параллельно анализировать разные типы связей (например, грамматические и семантические)
также необходимо позиционное кодирование (специальные сигналы), чтобы передать порядок слов

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


👍трансформеры хороши в рамках сложных задач с длинными зависимостями, большими данными и требованиями к генерации/глубокому анализу
(ex. большие языковые модели, машинный перевод, анализ текста/изображений/аудио, создание контента)
👎но малоэффективны для коротких последовательностей(избыточны), систем с критичными ограничениями памяти или скорости вывода, а также задач с малым объемом обучающих данных

@zadachi_ds_chat
Please open Telegram to view this post
VIEW IN TELEGRAM
💅2015👍3
Audio
Товарищи, напоминаю, что сегодня последний день, чтобы записаться на наши легендарные курсы по хорошей скидке 30%. Стартую они уже завтра.

Не упустите свой шанс классно прокачаться летом и залететь уже осенью на стажировку в Яндекс как наш выпускник прошлого набора (см прикрепленное интервью). Михаил сейчас работает на позиции джуниор в команде Яндекс Такси. Уверен его история просто парня из региона вас вдохновит!

[ Записаться на курсы ]
👍32
Изи стажка в VKВидео✅️
#vk
В начало

Делюсь отзывом о стажировке от выпускника наших курсов, на которые последний день скидки. Учусь на 4 курсе бизнес-информатики в ВШЭ. Всё началось с моего друга, он уже работал в вк и дал контакт своего эйчара. Я отправил резюме, и через месяц мне пришла обратная связь на почту... кхе-кхе
Ваше резюме заинтересовало

и просьба связаться с hr. Списались в tg. Было сказано, мол будет алгоритмическая задачка и теория по ML, но я бы сузил до алгоритмическая задачка и рекомендашки

По сути вышло 3 этапа: созвон с эйчаром, тех-собес на 1.5 часа, финал с командой

Тех.собес
1.собеседующий рассказал, почему пошёл в вк (кстати, лично я кайфанул от прикольной фичи в офисе, такой как безлимитная кола(стоит автомат как в бургер кинге:), иногда засиживался на кофе-поинтах в ноуте из-за этого)
2.Алгоритмическая таска
Дан массив чисел и число k. Нужно вернуть k самых частых элементов
по решению: считаем частоту чисел через хеш-мапу, сортируем пары (число, частота) по убыванию частоты, берём первые k элементов, O(NlogN) асимптотика
3.Блок с рекомендашками
написать функцию, которая вычисляет Precision@K
def precision_at_k(recommended_items, relevant_items, K):
top_k = recommended_items[:K]
relevant_in_top_k = [item for item in top_k if item in relevant_items]
return len(relevant_in_top_k) / K if K > 0 else 0.0


пользователи часто добавляют айтемы в "смотреть позже", но не смотрят их. Как можно улучшить рекомендации?

можно ранжировать айтемы по вероятности клика(CTR, например), учитывая контекст: время, устройство и историю просмотров, после чего делать A/B-тесты и добавлять разнообразие(избегаем застревания в одной категории), повышая вовлечённость

написать формулы метрик ранжирования, которые помню(написал MAP, nDCG, MRR), обсудили ранговую корреляцию+ попросил рассказать основные подходы к построению рекомендательных систем

Финал
ребята рассказали о себе, я поделился своими пет-проектами; в целом, словили общий вайб

через 3 дня дали офер

По стажке
понравился опыт, лично я дорабатывал алгоритмы рекомендаций, крутил данные, проверял гипотезы и даже пару раз устроил небольшой баг в A/B-тестах (но быстро поправил!)
+ немного помогал внедрять фичи в бекенд

вообще, если попадёте, рекомендую ходить на митапы и задавать глупые(как вам кажется) вопросы, быстрее освоитесь:)

зп: 80к гросс, 3 месяца
@zadachi_ds_chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍237💅3🌚2🥰1
Свершилось! Поступашки открывают набор на новую линейку карьерных курсов 🎉

Мечтаешь стать крутым специалистом и с легкость тащить собесы, но не хватает фундамента? Хочешь овладеть знаниями и навыками для работы в крупной компании как Яндекс, Тинькофф или ВК? Узнал себя? Тогда записывайся у администратора на любой из курсов (если андроид - смотрим через яндекс браузер):

➡️ дата сайнс (глубокое обучение)
➡️ фронтенд
➡️ дата инженер
➡️ математика для карьеры

Все курсы стартует 03.08. Курсы заточены на практику, вся теория будет разобрана на конкретных задачах и кейсах, с которыми сталкиваются на работе и на собесах. Ничего нудного и скучного! Изучаем только то, что тебе реально понадобится и залетаем на первую работу! Хочешь подробностей? На нашем сайте можно найти программу и отзывы на каждый курс.

Помимо этого на курсах тебя ждут:
- пет проекты и мини проекты, которые пойдут в портфолио;
- разбор реальных тестовых заданий бигтехов;
- разбор актуального контеста на стажировку в Яндекс и Тинькофф;
- банк реальных технических вопрос с собесов;
- разбор всех задач с алгособесов Яндекса!

А после прохождения курса тебя ждет пробный собес с подробной консультацией и сопровождением, рефералкой в Яндекс или в другие топовые компании!

📊 Цена 15'000р 9'000р при покупке до 18 июля включительно! Хочешь купить несколько курсов сразу? Дадим хорошую скидку!

Для вопросов и покупок пишем администратору и не тянем с этим: на каждом курсе количество мест ограничено!

Не забываем и про линейку старт, на которую тоже только до 18.07 действует скидка 40%!

➡️ алгоритмы старт
➡️ аналитика старт
➡️ машинное обучение старт
➡️ бэкенд разработка старт

ЗАПИСАТЬСЯ
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌1
Многие спрашивают: «А реально ли совмещать учёбу и работу, чтобы не выгореть?»
Кажется, магистратура МИФИ и Simulative как раз про это.

Формат выстроен под тех, кто уже работает:
— обучение полностью онлайн, легко совмещать с работой;
— есть бюджетные места;
— упор на практику: SQL, Spark, Airflow, Kubernetes и другие инструменты, которые реально используют в индустрии;
— много командных проектов — к выпуску уже есть портфолио для собесов.
— в программе не теоретические “введения”, а решение реальных кейсов бизнеса
— преподаватели — не только академики, но и действующие аналитики и дата-инженеры из Самокат, МТС, Ozon и других компаний

Для тех, кто хочет расти в аналитике данных или data engineering, но не готов бросать работу и уходить в академ, это хорошая альтернатива «второму высшему».

Записавшиеся на магистратуру до 25 июля получат в подарок участие в тренинге на 8 недель «Научись делать выводы на основе данных», который еще сильнее бустанет старт вашей карьеры

Узнать подробности поступления
3
Поступашки продолжают набор на новую линейку карьерных курсов 🎉

Мечтаешь стать крутым специалистом и с легкость тащить собесы, но не хватает фундамента? Хочешь овладеть знаниями и навыками для работы в крупной компании как Яндекс, Тинькофф или ВК? Узнал себя? Тогда записывайся у администратора на любой из курсов (если андроид - смотрим через яндекс браузер):

➡️ дата сайнс (глубокое обучение)
➡️ фронтенд
➡️ дата инженер
➡️ математика для карьеры

Все курсы стартует 03.08. Курсы заточены на практику, вся теория будет разобрана на конкретных задачах и кейсах, с которыми сталкиваются на работе и на собесах. Ничего нудного и скучного! Изучаем только то, что тебе реально понадобится и залетаем на первую работу! Хочешь подробностей? На нашем сайте можно найти программу и отзывы на каждый курс.

Помимо этого на курсах тебя ждут:
- пет проекты и мини проекты, которые пойдут в портфолио;
- разбор реальных тестовых заданий бигтехов;
- разбор актуального контеста на стажировку в Яндекс и Тинькофф;
- банк реальных технических вопрос с собесов;
- разбор всех задач с алгособесов Яндекса!

А после прохождения курса тебя ждет пробный собес с подробной консультацией и сопровождением, рефералкой в Яндекс или в другие топовые компании!

📊 Цена на сайте, только при покупке до 24 июля включительно скидка 40%! Хочешь купить несколько курсов сразу? Дадим хорошую скидку!

Для вопросов и покупок пишем администратору и не тянем с этим: на каждом курсе количество мест ограничено!

Не забываем и про линейку старт, на которую тоже только до 24.07 действует скидка 40%!

➡️ алгоритмы старт
➡️ аналитика старт
➡️ машинное обучение старт
➡️ бэкенд разработка старт

ЗАПИСАТЬСЯ
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
Всем, кто поступает в универ прямо сейчас и кто планирует в будущем!

Забирайте топ советы по поступлению, выбору вуза, специальности и вариантам получения стипендий! Все это есть в проекте Сбера и Университета ИТМО «Поступить по уму».

P.S. Если переживаете, что не поступите на бюджет, внутри есть советы по альтернативному поступлению в том числе про образовательный кредит!

Реклама. Ассоциация выпускников ИТМО ИНН:7813292183