Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
- Telegram Web
Telegram Web
МЛ секция в Яндекс (2025)

Только на той недели мой ученик успешно прошел мл секцию в Яндекс, делюсь с вами вопросами, товарищи. Да его и ответами тоже)
Еще больше инсайдов будет на курсе Старт МЛ и на курсе Хард МЛ. Всех жду, товарищи!

1. Что такое Bias Variance Decomposition. Интервьюер акцентировал внимание на математике, отсюда вытек следующий вопрос.
2. Расписать математически, что такое разброс.
3. Что такое Бэггинг? В чем смысл данной композиции и почему она хорошо работает. (Я написал, что смещение примерно остается то же, а вот дисперсия (разброс) падает. Общий вид predict в дереве для регрессии и классификации.
4. Какие Impurity знаешь? Как высчитывается разделяющее правило?
5. Какие знаешь методы борьбы с переобучением при обучении нейронных сетей? Как дропают отличается в train mode и eval mode.
6. Устная задача - как бы ты решал задачу сетками технически, если тебе нужно было бы по картинкам определить токсичность изображения? (Ну типо взять хороший Бэкбоун, приделать свою голову с out_features=2 и дообучить). На каком слое получаются эмбеддинги картинки?
7. Базовые метрики, как считаются,в чем физический смысл. Написать их формульно.

BVD = ШУМ + Разброс + Смещение

Разброс = E_x E_X(model(X)(x) - E_X(model)(x))^2

БЭГГИНГ - композиция

X_1, X_2, ..., X_n - бутср выборок

model_1(X_1), model_2(X_2), ....

a(x) = 1/n sum (model_i(x))

bias(a) ~ bias(b_i)

variance(a) -> variance(b_i) / N + (n*(n-1)) / n^2 * sum * cov()


H(R_m) ->_split |L|/|TOTAL| * H(L) + |R|/|TOTAL| * H(R) -> min

H(R) = sum_i_k (p_k * (1 - p_k))

1) Аугментации
2) DropOut

train_mode: p
eval_mode: 1/p

precision = (TP) / (TP + FP)
recall = (TP) / (TP + FN)

roc_auc = (y_i, p_i) -> sort p_i по убыванию

thr > p_i -> 0 0 | 1
thr <= p_i -> 1 1 | 1

TPR=recall FPR=(FP)/(FP + FN)


@ProdAnalysis
Авито стажировка (Аналитика).pdf
1 MB
Стажировка в Авито (Аналитика)

Прикрепляю тестовое задание, давайте 500 шэров (поделиться с другом) и делаем разбор.
Еще больше тестовых заданий и инсайдов на нашем курсе по аналитике.

@ProdAnalysis
Аналитика_Авитo.pdf
1.3 MB
Стажировка в Авито (Аналитика)

Прикрепляю тестовое задание, давайте 500 шэров (поделиться с другом) и делаем разбор. Дедлайн до 6 апреля.

@ProdAnalysis
Благодаря этой задаче нашему подписчику дали оффер в авито на продакта 200к+!!!😎

Для многих не секрет, что на собеседованиях по аналитике очень любят давать задачи на условную вероятность/формулу Байеса, поэтому перед вашими собеседованиями очень советуем прорешать пару задачек на эту тему. Давайте разберём одну из подобных задач с собеса на авито.

Условие:
Вам дана выше схема канализации "поломанного" города, на каждой точке находятся заслоны труб и они с вероятностью p закрыты и не пропускают сточные воды, а с вероятностью q - открыты и пропускают (в случае развилки вода потечёт по обоим путям). Вам требуется посчитать с какой вероятностью сточные воды попадут в реку, а также посчитайте вероятность, что заслон Г был закрыт, если вода попала в реку.

Подсказка: Воспользуйтесь формулой полной вероятности

Решение:
Обозначим событие, что сточная вода попадет в реку - x. Распишем P(x) по формуле полной вероятности.

P(x) = P(x | Г) * P(Г) + P(x | not(Г)) * P(not(Г)), тогда остаётся выразить условные вероятнсти, для этого удобно будет воспользоваться формулой включения исключения:

P(x | Г) = P(not(AБ) ⋃ not(ВД)) = P(not(АБ)) + P(not(ВД)) - P(not(АБВД)) = 2q^2 - q^4

P(x | not(Г)) = 1 - P(not(x) | not(Г)) = 1 - P(АБ ⋃ ВД) = 1 - P(АБ) - P(ВД) + P(АБВД) = 1 - 2p^2 + p^4

Далее просто подставляем считаем P(x).

Далее по формуле Байеса, посчитаем вероятность, что заслон Г был закрыт, при условии воды в реке.

P(Г | х) = P(х | Г) * P(Г) / P(x) - здесь остаётся просто подставить посчитанные значения.


@ProdAnalysis
Оконные функции в SQL — твой секретный инструмент для прохождений собеседований!

📌Формальное определение:
Оконные функции — мощный инструмент языка SQL, позволяющий проводить сложные вычисления по группам строк, которые связаны с текущей строкой.

🧐Углубимся в теорию


Классификация оконных функций:
1. Агрегирующие (sum, avg, min, max, count)
2. Ранжирующие (row_number, rank, dense_rank)
3. Смещения (lag, lead, first_value, last_value); функции смещения используются с указанием поля.

Ранжирующие функции:
row_number() – нумеруем каждую строку окна последовательно с шагом 1.
rank() – ранжируем каждую строку окна с разрывом в нумерации при равенстве значений.
dense_rank() – ранжируем каждую строку окна без разрывов в нумерации при равенстве значений.

Функции смещения:
lag(attr, offset (сдвиг), default_value(дефолтное значение в случае, если наша строка окажется первой)) – предыдущее значение со сдвигом.
lead(attr, offset, default_value) – следующее значение со сдвигом.
first_value(attr) – первое значение в окне с первой по текущую строку.
last_value(attr) – последнее значение в окне с первой по текущую строку.

💡Оконные функции нашли свое применение во многих компаниях. В LinkedIn оконные функции используют для расчета «силы» профиля (ранжирование пользователей по активности). А в Uber с их помощью анализируют динамику цен в режиме реального времени.

Ключевые компоненты:
1. OVER() — задает «окно»

-- Средняя зарплата ВО ВСЕЙ таблице (окно = все строки)
SELECT name, salary, AVG(salary) OVER() AS avg_salaryFROM employees;


2. PARTITION BY — разбивает на группы
-- Средняя зарплата ПО ОТДЕЛАМ (окно = строки отдела)
SELECT     name,
    department,
    salary,
    AVG(salary) OVER(PARTITION BY department) AS dept_avg
FROM employees;


3. ORDER BY — сортировка внутри окна
-- Накопительная сумма зарплат по дате приема
SELECT     name,
    hire_date,
    salary,
    SUM(salary) OVER(ORDER BY hire_date) AS running_total
FROM employees;


💻 Задача для практики:

«Найти сотрудников, чья зарплата выше средней по их отделу»

Решение:
SELECT name, department, salary
FROM (    SELECT
        name,
        department,
        salary,
        AVG(salary) OVER(PARTITION BY department) AS dept_avg
    FROM employees
) t
WHERE salary > dept_avg;


#SQL #ОконныеФункции

@ProdAnalysis
Фреймворки для приоритезации фичей.

Проблема

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

💡 Решение

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

Фреймворки быстрых приоритизаций:

📌 Reach / Frequency

Для оценки требуется заполнить следующую матрицу фичами:
строки(Frequency): частота использования функционала, 4 деления (редко, иногда, часто, постоянно)
столбцы(Reach): охват пользователей, 4 деления (мало, некоторые, большинство, все)
Каждая фича получит количество баллов равное сумме координат ячейки, куда она попала (например если элемент попал в (часто, все) то его значение будет 3 + 4 = 7). Далее отсортируем все метрики по их значению и выберем наилучшие.

📌 Opportunity scoring (Оценка возможностей)

Как проходит оценка: предоставим клиентам все фичи и попросим выписать этот список два раза, первый нужно отсортировать по важности внедрения, второй - по удовлетворенности нынешним решением. Затем мы составим график по оси x будет важность, по оси y - удовлетворённость. Получившийся график поможет дать представление о востребованности каждой из фич.

Фреймворки нагруженных приоритизаций:

📌 WSJF(Weighted Shortest Job First) - метод приоритизации фичей/задач в рамках agile подхода, он чувствителен ко времени выполнения фичи и к ценности для бизнеса. Этот метод может выявить фичи, которые дадут импакт в ближайшей перспективе
WSJF = Cost of Delay / job size

Cost of Delay = Ценность для бизнеса + срочность задачи + снижение рисков или возможности
job size - оценка объёмов предстоящих работ.

📌 RICE

Считаем значение метрики RICE и ранжируем по ней, выбираем лучших.
RICE = (Reach * Impact * Confidence) / Effort

Reach - оценка охвата пользователей, которые столкнулись с этой фичей
Impact - оценка полезности данной фичи для пользователей
Confidence - уверенность в своей оценки reach и impact
Effort - сложность реализации.

Все эти оценки можно оценивать от 1 до 10, но также можно и масштабировать тот или иной параметр по вашему усмотрению.

📌 Иерархия метрик

Здесь просто строится иерархия метрик, начиная от главной метрики, затем требуется найти метрику, на которую непосредственно повлияет фича и оценивается влияние этой на главную метрику.

@ProdAnalysis
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Яндекс_ml.pdf
106.3 KB
🎁 Публикуем разбор отборочного контекста на стажировку в яндекс по ML. Успейте пройти, у вас уже есть готовые решения, остаётся дело за малым!

Ещё больше разборов и полезных материалов на канале:
@ProdAnalysis
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Визуализация данных: как превратить цифры в истории.

Данные — это новая нефть. Но без правильной визуализации они остаются просто цифрами в таблице. Давайте разберём, как делать графики, которые не просто красивые, но и действительно полезные.

Пять принципов эффективной визуализации

1. Выбирайте правильный тип графика
- Тренды
→ Линейный график (matplotlib, plotly)
- Сравнение → Столбчатая диаграмма (seaborn)
- Доли → Круговая или кольцевая диаграмма (но только если сегментов <5!)
- Распределение → Гистограмма или boxplot

2. Убивайте "мусор"
Уберите лишние линии, 背景色 и анимации, если они не несут смысла.
Используйте минималистичные темы

3. Цвет — ваш союзник (или враг)
Для категорий
: Пастельные тона (например, #66c2a5, #8da0cb).
Для акцентов: Яркий цвет (один!), например, красный для негатива.
Проверка: Распечатайте график в ЧБ — если всё читаемо, вы молодец.

4. Аннотации решают всё
Добавляйте подписи к выбросам

5. Интерактивность ≠ сложность

Для дашбордов: Plotly или Tableau.
Простой пример:

import plotly.express as px
fig = px.bar(df, x='город', y='доход', color='месяц', title='Доход по городам')
fig.show()

Инструменты
Python:
Matplotlib, Seaborn, Plotly.
BI: Tableau, Power BI, Metabase.
Быстрые правки: Canva для презентаций.

📌 Правило: Хорошая визуализация — та, после которой не остаётся вопросов.

🎓 Напоминаем, у поступашек открыта запись на курс по А/Б тестированию!

@ProdAnalysis
Please open Telegram to view this post
VIEW IN TELEGRAM
Полный цикл отбора в Яндекс (Аналитика 2025)

Сейчас в полном разгаре летняя волна стажировок, выпускники наших курсов делятся нашими впечатлениями. Алексей, студент 2 курса бизнес информатики НИУ ВШЭ, решил поделиться своим опытом прохождения на продуктовую аналитику.

Вступительный контест
Здесь просто взял решения из разбора, который выкладывается в каналы курсов, переписал логику немного, там где это много, также попросил гптшку тоже поменять решения и закинул в контест.

Аналитическая секция
В начале интервьювер представился, прорекламил свою команду и попросил рассказать о себе в двух словах. Затем мы перешли к задачам.
Алгоритмическая задача:
  Дан массив чисел и значение x, требуется найти минимальный по длине подотрезок массива, такой, что количество уникальных значений на этом отрезке >= x.
Задачка простенькая на два указателя (+хешмапа). Здесь интервьювер максимально задушнил и асимптотику спросил с подробным объяснениям, также ссылаясь ещё на работу хешмапы, и начал выяснять как работает лист внутри и почему добавление O(1), но я выстоял, а задачку решил довольно быстро.
АБ:
На удивление ни единой задачки на ТВ не было, сразу перешли к дизайну АБ и критериям. В принципе здесь всё стандартно, просто обычный кейс, поспрашивал сколько человек разумно брать в эксперимент и какой критерий подойдёт, пытался вытянуть из меня идею применения CUPED (P.S. кстати на новом курсе по тестам будет даже разбираться и cuped, и стратификация, и прочие заумные методы), я даже вспомнил про его существования, но объяснил интервьюверу, что пока что мимо обошёл.
Метрики/unit экономика:
Дали кейс и попросили посчитать с unit экономику, здесь справился быстро и без нареканий.

Алгоритмическая секция
Первая задача: баян на мердж двух отсортированных односвязанных списков.
Вторая задача: дана матрица (каждый элемент 0 или 1) и требуется найти подматрицу максимальной площади состоящую только из 1. Тоже известная задача.
У интервьювера было 0 замечаний к решению, халявы решил в сумме обе задачи менее чем за 15 минут, так и закончился ласт алгособес и пригласили далее на финалы.

Интервью с командой
В основном на финале были пустые разговоры про мотивацию и прочее + задавали вопросы на продуктовое мышление. В двух командах были простенькие sql запросы. В третьей же задали целый ряд задач:
1. У нас есть два варианта рекомендательной системы. В A-группе конверсия 10% (на 1000 пользователей), в B-группе — 12% (на 1000). Достаточно ли этого, чтобы считать разницу значимой? Как проверить? Что делать, если выборка небольшая?
2. Компания запускает голосового ассистента для банка. Какие метрики стоит отслеживать в первые 3 месяца? Как понять, что продукт успешен?
Далее простенькие задачки на sql и итоговая болтовня.

По итогу меня взяли в последнюю команду. Подводя итоги, могу рассказать свой бэкграунд. Естественное ни о какой нормальной математики на БИ ВШЭ говорить и нельзя, всё я ботал сам, либо по курсам (но хочу отметить, что на собеседованиях естественно и не смогут проверить в полной мере твои харды, так что это легко можно и замаскировать). Курс алгосов в БИ относительно нормальный, для прохождения собесов с головой хватит (конечно тут говориться про именно знание тем, а не умение пользоваться алгоритмическим аппаратом, последнее естественно нужно будет тренить самому/либо у вас сразу пойдут простенькие задачи с собесов). Сама прога посредственная на БИ (но для аналитика собственно ничего трудного в проге и не нужно знать). SQL я выучил на курсах поступашек, как и прочую гуманитарщину, связанную с продкутовой частью. Что касается АБ, также базовые навыки изучил на курсах и сам ещё почитал другие материалы. Резюмируя, в принципе всё что мне понадобилось для отбора, я выучил за месяц и никаких особых хардов и не нужно, чтобы попасть на стажировку.

@ProdAnalysis
Тест на знaние SQL.pdf
1 MB
Вот и разбор теста на знание SQL стажировки в Т-банк. А разбор SQL задач и экзамена по математике уже на нашем курсе по AB тестам, на который только сегодня дарим 30% скидку!

@ProdAnalysis
Как выбрать правильные продуктовые метрики?

Каждый продукт — это живая система, и чтобы им управлять, нужно измерять то, что действительно важно. Но как не утонуть в сотне графиков и сосредоточиться на главном?

Какие метрики бывают?

📎 Оценка роста
DAU/WAU/MAU — кто и как часто возвращается
Retention — «выживаемость» пользователей через N дней
Virality (K-фактор) — насколько продукт сам себя продвигает

📎 Экономика продукта
LTV — сколько денег приносит клиент за всё время
CAC — сколько стоит его привлечение
ROI — окупаемость вложений

📎 Качество продукта
NPS — лояльность пользователей
CES — простота решения задач
CR (Conversion Rate) — сколько доходят до цели

💡 Как не ошибиться?
Фокус на 3-10 вторичных, и 1 KPI — остальное шум.
Связывайте метрики с целями — если хотите удержание, смотрите Retention, а не CAC.
Segmentируйте данные — поведение новых и старых пользователей может сильно отличаться.

@ProdAnalysis
Media is too big
VIEW IN TELEGRAM
По многочисленным просьбам разбираем 7ую задачу со стажировки в Т-банк. Код уже здесь.

@ProdAnalysis
Как найти своего идеального клиента? Сегментация аудитории.

Каждый продукт создаётся для людей, но не все люди одинаково полезны для вашего бизнеса.
Одни клиенты приносят 80% прибыли, другие — просто создают нагрузку на поддержку.

Инструмент, который поможет найти паттерны ваших идеальных клиентов — сегментация аудитории.

Зачем сегментировать аудиторию?
Сегментация помогает:
Точечно улучшать продукт под нужды ключевых пользователей.
Повышать конверсию за счёт персонализированных коммуникаций.
Увеличивать LTV (Lifetime Value), удерживая лучших клиентов.

Есть 4 основных подхода:
1. Демографическая сегментация
2. Поведенческая сегментация
3. Психографическая сегментация.
4. RFM-анализ (Recency, Frequency, Monetary)

Основные ошибки в сегментации
1. Слишком много сегментов → невозможно персонализировать.
2. Сегменты без действий → просто анализ ради анализа.
3. Игнорирование динамики → клиенты меняются, сегменты тоже должны.

@ProdAnalysis
Поступашки открывают набор на курс по теории вероятностей и математической статистики для тех, кто поступает в Академию Аналитиков Авито!

Мечтаешь поступить в ААА? Или просто хочешь тащить собесы и стать крутым специалистом в DS, но не хватает фундамента? Тогда тебе к нам!

На курсе будет разобрана специфика задач, ВСЕ идеи и подходы, используемые составителями. А также тебя ждёт пробный экзамен и собеседование!

Как всегда лекции со всей необходимой систематизированной теорией, семинары (на которых вы не просто сидите в чате, а имеете возможность отвечать, как на живом уроке), домашние задачи, разбор домашних задачек, куратор Владислав, который готовит десяток лет, все что может вам потребоваться для полной подготовки!

Цена самая доступная: 9000 р за курс.

Начинаем уже 7 июня! Первые материалы уже доступны!

После семинара доступна запись. Кураторы помогут заполнить анкету, помогут в абсолютно в любом вопросе, задаче. Вас ждет пробный экзамен, персональное собеседование! А также разведка по каждому экзамену, инсайды и персональные рекомендации. Все будет еще круче, чем на всех наших прошлых курсах (отзывы тут).

Программа и Подробности.

Для записи и вопросов: @menshe_treh
ЯндексАналитикаРазбор.pdf
117.8 KB
Товарищи, публикуем разбор на стажировку по аналитике в яндекс, успейте пройти отбор до смены контеста и попасть летом в команду яндекса!😎

@prodAnalysis
Принцип Парето

Недавно студенту наших курсов попалась довольная необычная "легенда" примитивной задачи на собесе в т-банк на позицию Project manager. Решили разобрать, чтобы вы не пугались подобных формулировок в будущем!

Условие:
На заводе техобслуживание станка занимает ровно 8 часов (480 минут). Инженер предложил оптимизировать процесс по принципу Парето (20% усилий дают 80% результата):
1. Выполнить 80% работ за 20% стандартного времени.
2. Для оставшихся 20% работ повторить принцип: устранить 80% остатка за 20% времени, требуемого на этот остаток.
И так мттеративно далее применять для остающихся частей.
Обусловимся следующими ограничениями:
- Объем работ однороден (время пропорционально объему).
- На первом этапе 20% времени = 20% от 480 минут.

Какую экономию времени (в минутах) даст новый метод?

Задача максимально простая, но из-за загруженности условия и волнения, некоторые могут сбиться с толку. Здесь есть несколько способов решения, разберём два.

1. Обозначим исходное время как T = 480 мин. На каждом шаге: устраняем 80% текущего объема работ (фактически каждую иттерацию можно интерпретировать, как реализацию случайной величины) и тратим 20% времени, требуемого на текущий объем. После n-го шага остаток работ: (0.2)^n * 100%. Время на k-м шаге: t_k = (0.2)^k * T. Общее время – сумма геометрической прогрессии: S = T * \sum (0.2)^k. Посчитаем сумму S = T * 0.2/(1-0.2) = 120 => мы сэкономили 480-120 минут = 360 минут

2. Есть второй подход, можно заметить что, засчет такого иттеративного подхода наша скорость увеличится в 80/20=4 раза, а значит мы в 4 раза потратим меньше времени, тогда ответ 480-480*1/4=360 минут.

@prodAnalysis
2025/06/18 10:37:37
Back to Top
HTML Embed Code: