Вопросы, которые вам обязательно зададут на типичном собесе по 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).
- Уменьшение сложности модели путём отбора фичей
- Добавление больше чистых данных.
- Кросс-валидация.
Картинка 3, 4
Кросс-валидация (CV) — метод оценки качества модели через разбиение данных на тренировочные и валидационные наборы (например, K-Fold).
TimeSeries-CV: используется для временных рядов, учитывает временную зависимость. Пример: sliding window или expanding window.
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌13❤🔥9👍2🔥2❤1
Вопросы, которые вам обязательно зададут на типичном собесе по 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
Картинка 4
- ROC-AUC показывает, насколько хорошо модель может отличить один класс от другого, другими словами, это вероятность того насколько модель может хорошо отранжировать один класс от другого. Чем ближе значение к 1, тем лучше. Если ROC-AUC = 0.5, модель угадывает случайно, ROC-AUC = 0, то модель предсказывает все положительные классы как нули, а нули как положительные. Чувствительна к дисбалансу классов.
- PR-AUC показывает, как хорошо модель находит положительные объекты и насколько точно она это делает. Особенно полезна, если положительных объектов мало (несбалансированные данные).
- 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👍3❤1🥰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:
Плюсы: Простота, требует меньше моделей (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
🍌6❤2🔥2
ЖЁСТКОЕ Собеседование Middle Data Science | Classic ML | Реальные задачи с собеседований
Записал собеседование со своим учеником, где постарался прям жёстко подушить его вопросами, также построили Precision, Recall, ROC-AUC ручками - https://youtu.be/AsHMSRIVzLE
Разбираем:
Смотрим и проверяем себя!
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
#1 ЖЁСТКОЕ Собеседование Middle Data Science | Classic ML | Реальные задачи с собеседований
Доведение с нуля до ОФФЕРА 💸 - https://ds-mentor.ru/
🔎 Хочешь узнать, с какими задачами сталкиваются на собеседованиях по Data Science? В этом видео я провожу сложное интервью на позицию Middle Data Scientist и объясняю ключевые темы, которые вызвали трудности…
🔎 Хочешь узнать, с какими задачами сталкиваются на собеседованиях по Data Science? В этом видео я провожу сложное интервью на позицию Middle Data Scientist и объясняю ключевые темы, которые вызвали трудности…
🔥36🍌9👍4⚡1❤🔥1🥰1
Уничтожение RAG - ML System Design
Давайте пойдем по базе из этого поста, ещё можете чекнуть этот пост с разбором MLSD для обучения LLM
Как отвечать на вопрос вопрос: «Постройка мне Retrieve модель в RAG»? Давайте разбираться!
Задача
Построить Retrieve модель для рага в e-commerce. Мы большой магазин навоза и нам надо рекомендовать товар по запросу пользователя в LLM. Напомню, retrieve модель - это штука, которая на основе запроса пользователя ищет подходящий контекст, чтобы засунуть в ЛЛМ.
Ограничения:
Ограничения: Минимальная задержка (<3–5 сек.), иначе пользователь ливнёт и поставит нашему сервису какашку
Бизнесовые метрики
Онлайн-метрики:
Оффлайн метрик:
Источник:
Мы большой магазин навоза и нам ну прям нужен RAG, то скорее всего мы доросли до того момента, когда у нас есть своя БД с описанием сортов навоза и их уникальных особенностей - 5 млн записей
Разметка:
Для Retrieve модели нам нужно получить данные: «запрос → релевантные документы». нанимаем копирайтера - Валюху, которая будет размечать нам данные. Но Валюха просит много рублей за свою работу, а мы не можем ей дать столько денег, то можем сделать начальную разметку с помощью TF-IDF или других BERT-like моделей.
Train/Test:
Случайно поделить на train/val/test (например, 70/15/15 - именно так мы должны разбивать навоз!)
BaseLine:
Сначала нужно сделать самое простое решение в качестве затычки. Нашей затычкой будет Elasticsearch на основе TF-IDF, который будет возвращать top-k=5 чанков. Чанк делим на 256 токенов или по структуре данных.
Норм решение для продажи навоза
Гибридный подход - TF-IDF & ANN + E5 & Cosine Similarity + Reranker
Заранее считаем все эмбеддинги BM25 и E5 и храним всё в БД - Faiss, ChromeDB.
Как обучать модели:
ReRanker:
X: (Query, Document) + доп. фичи (score BM25/ANN/E5, клики, цена, популярность и т.д.).
y: бинарная (релевант/нерелевант) или градуированная (0–5). Loss: Pairwise Ranking (LambdaRank), Cross-Entropy (если классификация) или Listwise (nDCG-based).
Количество семплов: 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
👏19❤5🍌4🔥3🥰1