Ebout Data Science | Дима Савелко
2.19K subscribers
142 photos
12 videos
85 links
Ebout Data Science by @ngmdite
Download Telegram
Вопросы, которые вам обязательно зададут на типичном собесе по ClassicML ч1

Все вопросы вы можете посмотреть в моём личном сборнике вопросов, там также есть вопросы не только по ClassicML, но и по NLP, CV и вопросы с компаний)

*️⃣Что такое линейная регрессия ?
Линейная регрессия — это метод прогнозирования, который ищет линейную зависимость между зависимой переменной y и независимыми переменными x. Модель описывается уравнением: y = w*x + b, где w - веса модели, а b - смещение.


*️⃣Как обучается линейная регрессия?
Обучение заключается в подборе коэффициентов w, b, минимизируя функцию потерь, например, среднеквадратичную ошибку (MSE). Методы оптимизации: градиентный спуск или аналитическое решение через нормальное уравнение.


*️⃣Какие плюсы и минусы линейной регрессии ?
Плюсы: может в тенденцию, интерпретируемость, быстрое обучение
Минусы: не работает с нелинейными зависимостями, чувствительна к выбросам


*️⃣Что такое переобучение? Как его обнаружить?
Переобучение — это ситуация, когда модель слишком хорошо подстраивается под обучающие данные, теряя способность обобщать на новые данные. Есть вероятность переобучения, если высокая точность на трейне, и низкая не тесте, а также сильно расходятся кривые обучения.


*️⃣Что такое регуляризация ? Какие виды её бывают, и чем они отличаются? Можешь ли графически интерпиртировать регуляризацию? Почему она помогает бороться с переобучением?
Картинка 1, 2
Регуляризация — это метод добавления штрафа в функцию потерь для уменьшения сложности модели.
L1-регуляризация (Lasso): добавляет штраф на сумму модулей коэффициентов.
L2-регуляризация (Ridge): добавляет штраф на сумму квадратов коэффициентов.
Графическая интерпретация:
L1-регуляризация (Lasso): штраф создает ромбовидный контур ограничений. Это приводит к тому, что веса некоторых признаков могут становиться равными нулю, делая модель разреженной.
L2-регуляризация (Ridge): штраф формирует круговые контуры ограничений. Это приводит к тому, что веса уменьшаются равномерно, сохраняя все признаки в модели, но снижая их вклад.
Почему помогает: Уменьшает влияние нерелевантных признаков и сложных моделей.


*️⃣Какие методы борьбы с переобучением?
- Регуляризация (L1, L2).
- Уменьшение сложности модели путём отбора фичей
- Добавление больше чистых данных.
- Кросс-валидация.


*️⃣Что такое Cross-Validation? TimeSeries-Cross-Validation?
Картинка 3, 4
Кросс-валидация (CV) — метод оценки качества модели через разбиение данных на тренировочные и валидационные наборы (например, K-Fold).
TimeSeries-CV: используется для временных рядов, учитывает временную зависимость. Пример: sliding window или expanding window.
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌13❤‍🔥9👍2🔥21
Вопросы, которые вам обязательно зададут на типичном собесе по ClassicML ч2

Все вопросы вы можете посмотреть в моём личном сборнике вопросов, там также есть вопросы не только по ClassicML, но и по NLP, CV и вопросы с компаний)

*️⃣Что такое логистическая регрессия? Как получить из линейной регрессии логистическую регрессию?
Картинка 1
Логистическая регрессия - Модель для классификации, прогнозирующая вероятность принадлежности объекта к классу.
Чтобы получить логистическую регрессию, в функцию сигмоиду (картинка) подставляют линейную комбинацию признаков z = w*x+b. Таким образом, линейная модель используется как вход для сигмоидной функции, чтобы спрогнозировать вероятность.


*️⃣Что такое отступ в логистической регрессии?
Отступ — это значение wx+b, то есть отступ в логистической регрессии m = wx+b. Он показывает, на сколько далеко (в терминах линейного пространства) точка находится от гиперплоскости. Если m > 0, то точка относится к классу 1, если m < 0, то точка относится к классу 0. Это означает, что точки, которые дальше от гиперплоскости, дают более вероятностные предсказания (ближе к 0 или 1).


*️⃣Какие существуют метрики регрессии?
Картинка 2
MSE (Mean Squared Error) — Среднеквадратичная ошибка:
Плюсы: Сильно штрафует большие ошибки, что полезно, если они критичны.
Минусы: Чувствительна к выбросам.

MAE (Mean Absolute Error) — Средняя абсолютная ошибка:
Плюсы: Менее чувствительна к выбросам, чем MSE.
Минусы: Сложнее оптимизировать, так как модуль функции не дифференцируем в нуле.

R² (Коэффициент детерминации) - Показывает, какая доля дисперсии целевой переменной объясняется моделью. Значение от 0 до 1, где 1 — идеальная модель.

RMSE (Root Mean Squared Error) — Корень из среднеквадратичной ошибки:
Интерпретируемость выше, так как метрика имеет те же единицы измерения, что и целевая переменная.

MAPE (Mean Absolute Percentage Error) — Средняя абсолютная процентная ошибка.
MAPE измеряет среднюю относительную ошибку в процентах, показывая, насколько сильно предсказание модели отклоняется от реальных значений.


*️⃣Какие бывают метрики классификации?
Картинка 3
Метрики: Accuracy, Precision, Recall, F1-Score, ROC-AUC, PR-AUC


*️⃣Что такое ROC-AUC, PR-AUC? Каковы их плюсы и минусы?
Картинка 4
- ROC-AUC показывает, насколько хорошо модель может отличить один класс от другого, другими словами, это вероятность того насколько модель может хорошо отранжировать один класс от другого. Чем ближе значение к 1, тем лучше. Если ROC-AUC = 0.5, модель угадывает случайно, ROC-AUC = 0, то модель предсказывает все положительные классы как нули, а нули как положительные. Чувствительна к дисбалансу классов.

- PR-AUC показывает, как хорошо модель находит положительные объекты и насколько точно она это делает. Особенно полезна, если положительных объектов мало (несбалансированные данные).


*️⃣Когда лучше использовать Precision и Recall? Дай реальные кейсы
- Recall важен, когда ошибки FN критичны (определение рака, нам страшно, если модель сказала, что человек здоров (y_pred=0), но на самом деле он болен раком (y_true = 1)).
- Precision важен, когда ошибки FP критичны (поиск спама в почте, нам страшно, если модель сказала, что сообщение спам (y_pred=1), но на самом деле это не спам (y_true=0), тога важное сообщение уйдёт в корзину).
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌6❤‍🔥4👍31🥰1
Вопросы, которые вам обязательно зададут на типичном собесе по ClassicML ч3

Все вопросы вы можете посмотреть в моём личном сборнике вопросов, там также есть вопросы не только по ClassicML, но и по NLP, CV и вопросы с компаний)


*️⃣Какие есть методы многоклассовой классификации?
Картинка 1
One-vs-All: Строится одна модель для каждого класса, отделяя его от всех остальных. Пример: Классификация фруктов (яблоко, банан, апельсин). Для каждого фрукта строится модель типа: [фрукт_i, не_фрукт_i]
- модель 1: Яблоко vs Не Яблоко
- модель 2: Банан vs Не Банан
- модель 3: Апельсин vs Не Апельсин

Картинка 2
All-vs-All: Строится модель для каждой пары классов.
- модель 1: Яблоко vs Банан
- модель 2: Яблоко vs Апельсин
- модель 3: Банан vs Апельсин


*️⃣Какие существуют плюсы и минусы One vs All и All vs All?
One-vs-All:
Плюсы: Простота, требует меньше моделей (N моделей для N классов).
Минусы: Может быть сложнее справляться с несбалансированными данными, поэтому требует калибровки моделей.

One-vs-One:
Плюсы: Хорошо работает для сложных данных, меньше проблем с несбалансированностью.
Минусы: Требует больше моделей (N(N−1)/2), что увеличивает вычислительную сложность.


*️⃣ Какие существуют метрики для многоклассовой классификации?
Картинка 3
Картинка 4
Микро усреднение - представьте, что у нас три confusion матрицы, в микро мы сначала считаем сумму TP, FP на основе всех этих трёх матриц, у нас получается TP_сумм=TP_1 + TP_2 + TP_3, FP_сумм=FP_1 + FP_2 + FP_3. А потом на основе средних этих средних считаем Precision_микро = TP_сумм/(TP_сумм+FP_сумм).

Картинка 5
Макро усреднение - есть три confusion матрицы, в макро мы сначала считаем Precision на основе каждой матрицы. А потом на основе этих метрик считаем считаем Precision_ср = (Precision_1 + Precision_2 + Precision_3)/3.

Картинка 6
На микро усреднении мы можем позволить себе ошибиться на маленьких классах, так как вклад каждого класса пропорционален его размеру.
На макро мы не можем себе это позволить, там нет пропорции
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌62🔥2
ЖЁСТКОЕ Собеседование Middle Data Science | Classic ML | Реальные задачи с собеседований

Записал собеседование со своим учеником, где постарался прям жёстко подушить его вопросами, также построили Precision, Recall, ROC-AUC ручками - https://youtu.be/AsHMSRIVzLE

Разбираем:
*️⃣ Линейная и логистическая регрессия
*️⃣ Precision, Recall, ROC-AUC "на пальцах"
*️⃣ Регуляризации L1, L2 и ElasticNet
*️⃣ Метрики классификации и их применение в реальных задачах
*️⃣ Считаем ручками Precision, Recall и ROC-AUC

Смотрим и проверяем себя!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36🍌9👍41❤‍🔥1🥰1
Уничтожение RAG - ML System Design 😁

Давайте пойдем по базе из этого поста, ещё можете чекнуть этот пост с разбором MLSD для обучения LLM

Как отвечать на вопрос вопрос: «Постройка мне Retrieve модель в RAG»? Давайте разбираться!

1️⃣ В начале разработки MLSD важно понять, что нам нужно сделать, поэтому в первую очередь формулируем задачу и ограничения.

Задача
Построить Retrieve модель для рага в e-commerce. Мы большой магазин навоза и нам надо рекомендовать товар по запросу пользователя в LLM. Напомню, retrieve модель - это штука, которая на основе запроса пользователя ищет подходящий контекст, чтобы засунуть в ЛЛМ.

Ограничения:
Ограничения: Минимальная задержка (<35 сек.), иначе пользователь ливнёт и поставит нашему сервису какашку 💩

2️⃣ Метрики
Бизнесовые метрики 📞
➡️Conversion Rate - доля пользователей, совершивших покупку после взаимодействия с чат-ботом.
➡️Average Order Value (AOV) / Средний чек - средняя сумма покупки после взаимодействия с ботом (или в сравнении с пользователями, которые не общались с ботом).

Онлайн-метрики:
➡️Удовлетворенность клиентов (CSAT) — пользовательская оценка (1–5).
➡️CTR - процент кликов по товарам/категориям, которые Retrieval-модуль (и далее LLM) порекомендовал.

Оффлайн метрик:
➡️Precision@k: Доля релевантных документов среди топ-k результатов поиска.
➡️ROC-AUC: способность модели отделять релевантные документы от нерелевантных
➡️mAP, nDCG - Метрики ранжирования

3️⃣ Что там с данными? Откуда и сколько их получить, и как поделить на Train/Test ?
Источник:

Мы большой магазин навоза и нам ну прям нужен RAG, то скорее всего мы доросли до того момента, когда у нас есть своя БД с описанием сортов навоза и их уникальных особенностей - 5 млн записей 😋

Разметка:
Для Retrieve модели нам нужно получить данные: «запрос → релевантные документы». нанимаем копирайтера - Валюху, которая будет размечать нам данные. Но Валюха просит много рублей за свою работу, а мы не можем ей дать столько денег, то можем сделать начальную разметку с помощью TF-IDF или других BERT-like моделей.

Train/Test:
Случайно поделить на train/val/test (например, 70/15/15 - именно так мы должны разбивать навоз!) 🍫

4️⃣ Построение пайплайна обучения
BaseLine:
Сначала нужно сделать самое простое решение в качестве затычки. Нашей затычкой будет Elasticsearch на основе TF-IDF, который будет возвращать top-k=5 чанков. Чанк делим на 256 токенов или по структуре данных.

Норм решение для продажи навоза 💪
Гибридный подход - TF-IDF & ANN + E5 & Cosine Similarity + Reranker
Заранее считаем все эмбеддинги BM25 и E5 и храним всё в БД - Faiss, ChromeDB.
➡️Поступил запрос, находим 1000 ближайших записей на основе TF-IDF & ANN - то есть пихаем эмбеддинги TF-IDF в ANN, и получаем кластер из 1000 ближайших элементов к запросу. Считаем precision@k, k = 1000 - количество релевантных документов из всех элементов в кластере.
➡️Среди 1000 найденных записей находим топ 10 элементов с помощью E5 и cosine sim. Метрика: precision@k, k = [10, 5, 3, 1].
➡️Переранжируем эти 10 элементов обученной моделькой: CatBoost, LambdaRank или энкодер. Измеряем ROC-AUC, mAP, nDCG - если есть разметка.

Как обучать модели:
➡️ TF-IDF - обучаем свой токенайзер и на всём корпусе документов обучаем TF-IDF. Для экономии памяти можем через PCA сжать эмбеддинги.
➡️ E5 - X: (Query, Positive Doc, Negative Doc - синтетику генерим с помощью GPT, проверяем через G-Eval и копирайтеров), y: метки релевантности (Positive, Negative), Loss: Triplet Loss - он сближает релевантные пары с навозом и отдаляет нерелевантные.

ReRanker:
X: (Query, Document) + доп. фичи (score BM25/ANN/E5, клики, цена, популярность и т.д.).
y: бинарная (релевант/нерелевант) или градуированная (0–5). Loss: Pairwise Ranking (LambdaRank), Cross-Entropy (если классификация) или Listwise (nDCG-based).

5️⃣ A/B-тесты и мониторинг
Количество семплов: 1000, Train/Test = 70/30%, Онлайн-метрика: CTR, CSAT

Итог:
Вот мы и построили базовый документ модели ретривы в RAG`е для магазина навоза, который ещё можно дорабатывать. Если он вам был полезен, то надеюсь вы им воспользуетесь на собесах по MLSD 🐹
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👏195🍌4🔥3🥰1