ПрактИИкум
196 subscribers
3 files
2 links
По всем вопросам (в том числе и по поводу рекламы) обращайтесь к @pypros
Редактор: @ya_blinchik
Главред: @dadlnside
чат: t.me/prakta_AI_chat

Канал по проге: @prakta_inf
Канал по олмату: @prakta_bvi
Download Telegram
Channel created
Что же это за канал?

Думаю, что многие слышали про 🅰️🔤, явной отсылкой на который является название данного тгк. Из-за того, что он сейчас на хайпе, я решил организовать свой тгк, посвящённый хакатонам и 🔤🔤

Начну с того,что я сам планирую стать 🔤🔤 engineer (так как там платят больше всего) , думаю, этот канал поможет определиться тебе в любви к 🔤🔤

Тут будут публиковаться все новости, связанные с олимпиадами, хакатонами, Roadmap'ами для входа в ML
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍5🔥5
Первый пост будет про основные термины в 🅰️🔤, пишите какой контент ещё хотите

🅰️🔤 — обширная область компьютерных наук, занимающаяся созданием систем, способных выполнять задачи, обычно требующие человеческого интеллекта.

🔤achine 🔤earning — метод, при котором компьютер учится на данных, находя закономерности, а не следуя жестким правилам.

🔤eep 🔤earning — подраздел ML, использующий многослойные нейронные сети для решения особенно сложных задач, например, распознавания лиц или понимания естественного языка.

🅰️🔤🔤 (Сильный ИИ) — гипотетический ИИ, который мог бы выполнять любые интеллектуальные задачи наравне с человеком. На сегодняшний день AGI не создан.

Основные компоненты машинного обучения:

Нейронная сеть — вычислительная система, вдохновленная структурой биологического мозга и состоящая из множества соединенных между собой искусственных нейронов.

Модель — результат процесса обучения: математическая формула или компьютерная программа, способная делать предсказания или принимать решения на основе входных данных.

Функция потерь — метрика, которая оценивает, насколько сильно предсказания модели отличаются от правильных ответов. Цель обучения — минимизировать эту функцию.

Градиентный спуск — итеративный алгоритм оптимизации, который постепенно подбирает параметры модели для минимизации функции потерь.
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍6🔥6
Поскольку канал только начинает свой путь, было бы очень кстати, если бы вы написали что конкретно вы хотите в комментариях под данным постом:)
15❤‍🔥6👍6
Специализированные направления

🔤🔤🔤 (Обработка естественного языка) — область ИИ, позволяющая компьютерам понимать, интерпретировать и генерировать человеческую речь и текст.

🔤🔤(Компьютерное зрение) — направление, которое учит машины «видеть» и понимать визуальную информацию: фотографии, видео, изображения.

🔤🔤 (Обучение с подкреплением) — метод, при котором агент учится принимать решения, взаимодействуя со средой и получая «вознаграждение» за правильные действия.

Генеративный 🅰️🔤 — класс моделей, способных создавать новый контент: текст, изображения, музыку, видео. Самые известные примеры — модели GPT и Claude
Современные архитектуры и модели

🔤🔤🔤 (Большая языковая модель) — модель огромного размера, обученная на колоссальных объемах текстовых данных для понимания и генерации естественного языка.

Трансформер — революционная архитектура нейронных сетей, лежащая в основе большинства современных LLM. Ключевая особенность — механизм внимания .

🔤🅰️🔤 (Retrieval-Augmented Generation) — техника, повышающая точность ответов LLM путем поиска релевантной информации в базе знаний перед генерацией ответа.

🔤🔤🔤 (Сверточная нейронная сеть) — архитектура, особенно эффективная для обработки изображений и распознавания образов.

🔤🔤🔤/🔤🔤🔤🔤 (Рекуррентные сети/Длинная краткосрочная память) — типы нейронных сетей, оптимизированные для работы с последовательными данными, такими как текст, речь или временные ряды.

Технологическая инфраструктура

🔤🔤🔤/🔤🔤🔤— специализированные процессоры, необходимые для ускорения вычислений при обучении и работе тяжелых нейросетей.

🅰️🔤🔤(Интерфейс программирования приложений) — способ, с помощью которого различные программы, включая ИИ-сервисы, могут взаимодействовать друг с другом.

🔤🔤🔤🔤🔤(ML Operations) — практика автоматизации и управления жизненным циклом моделей машинного обучения: от разработки до эксплуатации.

🔤🔤🔤 (Extract, Transform, Load) — классический процесс подготовки данных: извлечение из источников, преобразование в нужный формат и загрузка в хранилище.

Завтра выйдет пост про то, для кого направление ИИ,а пока держите вторую часть вчерашнего поста поста❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥6❤‍🔥4👍1
Кто такой Machine Learning инженер?
ML-инженер — это специалист, который проектирует и внедряет системы, способные самостоятельно находить закономерности в данных.

📚 Что нужно знать и зачем?

🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤🔤🔤🔤

Зачем: Для представления данных и операций над ними.
Пример: Любой входной объект (картинка, текст, звук) преобразуется в вектор чисел. Обучение нейросети — это по сути гигантская серия перемножений матриц. Понимание линала нужно, чтобы эффективно менять размерность данных и оптимизировать вычисления.

🔤🔤🔤🔤
🔤🔤🔤🔤🔤🔤🔤🔤

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

🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤 🔤
🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤

Зачем: Для оценки значимости признаков и валидации модели.
Пример: Вычисление корреляции между признаками. Если данные (например, цвет кнопки) статистически не влияют на результат (покупку), инженер исключает их, чтобы не перегружать модель.

🔤🔤🔤🔤🔤

🐍 Python — написание скриптов для автоматизации конвейеров данных и интеграция моделей в сервисы.
🗄SQL — извлечение выборок данных из хранилищ с помощью запросов (SELECT, JOIN, GROUP BY).

🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤🔤🔤🔤

NumPy— векторизация вычислений. Перевод данных в многомерные массивы, что ускоряет расчеты в десятки раз.
Pandas — предобработка данных. Заполнение пропусков, кодирование признаков и фильтрация таблиц.
Scikit-learn — обучение классических алгоритмов (случайные леса, регрессии) для работы с таблицами.
PyTorch — разработка архитектур нейросетей. Позволяет использовать GPU для ускорения обучения на миллионах параметров.

🔤🔤🔤🔤🔤

1. Перевод с «математического» на «бизнес»: объяснять работу алгоритмов на языке выгоды и рисков.
2. Управление ожиданиями: вовремя сказать, где нейросеть не поможет и почему данных недостаточно.
3. Бизнес-ориентированность: понимать, как твоя модель увеличит прибыль или сэкономит время компании.
4. Гибкость (MVP-подход): уметь быстро собрать простое решение вместо того, чтобы месяцами полировать идеальную, но ненужную модель.

🔤🔤🔤🔤🔤
ML-инженер — это связующее звено между математикой, прогой и бизнесом.
Послезавтра будет пост про то , как готовится к олимпиадам по ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥4❤‍🔥1
🅰️🔤🅰️🔤🅰️🔤🔤🅰️🅰️ 🔤🅰️🅰️
🅰️🅰️🔤🔤🅰️🅰️🅰️🔤🔤🔤

🔤🔤🔤🔤🔤

ТГ-канал ВсОШ✈️
🔵https://t.me/vsosh_ai

Архив презентаций со сборов ЦУ🧑‍🎓
🔵https://sleep3r.ru/presentations/t-ai/

Презентация по подготовке к Региону👩‍💻
🔵https://vso.edsoo.ru/public.php/dav/files/FWqtyQzKEpKPLDB/?accept=zip

Курс от Т-Банка🏦 и ЦУ❤️
🔵https://edu.tbank.ru/all-activities/courses/e4bc1dd8-b46d-418c-ab70-6035732a9f7f?org=central_university&autoregister=true

Сборы Сириуса к финалу
🔵Блок ML:
https://github.com/Nina-Konovalova/Sirius_2026 🧑‍💻
🔵Блок DL:
https://github.com/Atmyre/VSOSH_Sirius_DL 🧑‍💻
🔵Тренажёр для Математического тура:
https://stepik.org/course/274550/promo👍

Шпаргалки по пандасу,нампаю,матполибу🐍
🔵https://drive.google.com/drive/folders/1_A-suwX7Dv7TdR1iHoIr-TExGOQ8dr44?usp=sharing


🔤🔤🔤🔤🔤

Курсы от мфти🦨
🔵https://stepik.org/course/272073/promo (тут 🔤🔤)
🔵https://stepik.org/course/272087/promo (тут 🔤🔤🔤)

Курс по статистики от Карпова⭐️
(известный аналитик и преподаватель)

🔵https://stepik.org/course/76/promo?search=9109015075

Слова нашего редактора
(пипа всоша по
🔤🔤) по поводу заключительного этапа этого года:
Как показывает практика этого года,
от участника Всероса хотят всё и сразу.
Нужно уметь:
Немного в олмат и Вышмат, уметь кодить и млить,а так же уметь замечать


Через два месяца планируем скинуть лонгриды по вышмату от ЦУ(они хорошие и приятно читаются)
❤️
Следующий пост будет про градиентный спуск
⬇️ и функции ошибок 🔤🔤🔤
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96🔥6❤‍🔥1
Видны ли у вас буквы-эмодзи?
Anonymous Poll
83%
Да
3%
Нет
14%
Некоторые нет
🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
🔤🔤🔤🔤 🔤🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤
🔤 🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤🔤

1. Что такое 🔤🔤🔤?
MSE — это функция способная измерить, насколько сильно ошиблась модель.
MSE = (1/n) * Σ (y_i - ŷ_i)²
y_i — реальное значение
ŷ_i — предсказание модели
n — количество объектов

Зачем   возводить в квадрат?
Чтобы ошибка всегда была положительной (иначе, допустим разность в формуле равна 100 и -100,  модель даст нам ноль, хотя модель ошиблась сильно).
Чтобы «наказывать» модель за большие промахи гораздо сильнее, чем за маленькие(аналог это функция MAE с модулем вместо квадрата,она наказывает меньше)
2. 🏠🏠🏠🏠🏠🏠🏠🏠🏠🏠🏠
🏠🏠🏠🏠🏠⬇️
Перейдем ко второму семестру матана(Но нам достаточно знать, что такое производная и как она вычисляется)

🏠🏠🏠🏠🏠🏠🏠🏠— это направление самого крутого подъема(то есть направление максимума функции)

Градиентный спуск — это алгоритм, который минимизирует ошибки модели,это движение в обратную сторону (вниз), туда, где ошибка 🔤🔤🔤 минимальна.

3. Как это помогает в предсказании? (На примере дома)
Допустим, ты предсказываешь цену дома🏠
его стоимость💵 зависит от
1) Площади (прямая зависимость: увеличение площади ведет к росту стоимости).
2) Удаленность от станции метро (сокращение расстояния повышает цену).
3) Номер этажа (первый этаж, как правило, имеют меньшую стоимость).

Модель трансформирует эти данные в уравнение:
Цена = W1*x1 + W2*x2 + W3*x3 + B


Формула в общем виде
ŷ = Σ (Wj * xj) + B

🔤 берем из 🔤🔤🔤🔤🔤🔤🔤🔤(данные которые нам даны) —это значение 🔤🔤🔤🔤🔤🔤🔤🔤🔤

Здесь W1, W2, W3 представляют собой «веса», отражающие значимость каждого признака(допустим площадь будет иметь большую значимость,чем этаж,зачастую). Изначально компьютер присваивает им значения случайным образом.

B(bias) — это свободный коэффициент, который в машинном обучении называют смещением.
Это базовое значение, которое модель выдает. В примере с домом может означать стоимость самого участка. Даже если на нем стоит дом площадью 0 м².
4. 📉 Градиентный спуск (алгоритм оптимизации)
Сам градиент состоит из частных производных(это обычная производная только, где одна независимая переменная, а другие независимые переменные становятся параметрами)
вот пример
f(x,y)=x^2+3y
∂f/∂x=2x
∂f/∂y=3
градиент равен=(2х,3)


Вот так выглядит j элемент в градиенте — это частная производная по Wj в функции MSE
∂MSE/∂Wj = -(2/n) * Σ xij * (y_i - ŷ_i)
в xij
i — номер объекта
j — номер признака


для примера возьмем по w1
∂MSE/∂W1 = -(2/n) * Σ x_{i1} * (y_i - ŷ_i)

вот так выглядит градиент:
∇MSE =(∂MSE/∂W1,∂MSE/∂W2,...,∂MSE/∂B )

Интуитивно:
* если частная производная > 0 → ошибка растёт⬆️ → вес нужно уменьшить
* если частная производная < 0 → ошибка падает👇 → вес нужно увеличить
5. Формула обновления весов:
Wj = Wj - α * ∂MSE/∂Wj
B = B - α * ∂MSE/∂B

Wj — это веса модели
𝛼 — шаг обучения (learning rate)
мы сами его выбираем обычно 0.001 и менше

Очевидно, если ∇MSE ищет максимум,
то ∇MSE минимум
Как это работает:
Маленький шаг → долго, но стабильно, однако может недопргынуть (это в следующем посте)
Большой шаг → быстро, но может перепрыгнуть минимум (это тоже в следующем посте)

Алгоритм Градиентного спуска одновременно вычисляет вектор корректировки для каждого веса:

Векторное представление:
ŷ = W^T x + B

W_new= W_old - α * ∇MSE


В самом вверху есть гифка, в которой на всей функции ошибок вычисляется минимум с помощью градиентого спуска.
В следующем посте разберём пример применения градиентного спуска и его проблемы.
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4🔥4❤‍🔥1
latex_version.pdf
186.9 KB
🏠🏠🏠🏠🏠🏠🏠🏠🏠🏠🏠
🏠🏠🏠🏠🏠 на примере цены дома 🏠 и его проблемы

Допустим, у нас есть 3 дома с такими данными:
Дом🏠 Площадь🔤 Этаж🔝 Цена💲
1 50 м² 3 5 млн ₽
2 80 м² 7 8 млн ₽
3 30 м² 1 3 млн ₽
🌟🌟🌟🌟🌟🌟:
Цена=W1*x1+W2*x2+B

⚖️Начальные 🌟🌟🌟🌟 (случайные):
W1=0
W2=0
B=0

Случай 1️⃣: Маленький
🔤🔤🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤(α = 0.000001)
Считаем предсказания ŷ:
ŷ1=0*50+0*3+0=0
ŷ2=0
ŷ3=0

Считаем ошибки (y - ŷ):
Дом 1=5000000-0=5000000
Дом 2=8000000
Дом 3=3000000

Считаем 🔤🔤🔤:
MSE =(1/3)*(5000000²+8000000²+3000000²)=32666666666667

Ошибка огромная — модель пока ничего не знает
Считаем градиенты:
∂MSE/∂W1=-(2/n)*Σx_{i1}*(y_i - ŷ_i)
= -(2/3)*(50*5000000+80*8000000+30*3000000)=-653333333

∂MSE/∂W2=-49333333

∂MSE/∂B =-10666667

⚖️Обновляем веса:
W1 =0-0.000001*(-653333333)=0+653.3≈653
W2≈49
B≈11

Считаем предсказания:
ŷ1 =653*50+49*3+11 =32650+147+11 =32 808
ŷ2 =52 594
ŷ3 =19 650

MSE =(1/3)*((5000000-32808)²+(8000000-52594)²+(3000000-19650)²)
MSE ≈32 600 000 000 000

Ошибка уменьшилась... но совсем чуть-чуть 🐌
Через 1-1000 итераций:
Итерация 1: MSE ≈32 666 000 000 000
Итерация 100:MSE ≈28 000 000 000 000
Итерация 500: MSE ≈15 000 000 000 000
Итерация 1000: MSE ≈8 000 000 000 000

🔤🔤🔤🔤🔤🔤🔤🔤
1.
📉 Спуск идёт, но очень медленно
Нужны десятки тысяч итераций,чтобы прийти к нормальным весам⚖️
Визуализация:
Ошибка

│ *
│ *
│ *
│ *
│ *
│ *
│ *
│ *
└────────────────────────────── итерации
Каждый шаг крошечный

2.
Проблема маленького α — «застревание»
Представь функцию ошибок с двумя ямами:
Визуализация:
Ошибка

│ * *
│ * * * *
│ * * * *
│ * * * * *
│ ^^^ *
│ локальный *
│ минимум * * *
│ ^^^
│ глобальный
│ минимум
└───────────────────────────── итерации

При маленьком шаге👣 модель может застрять в локальном минимуме — ошибка там достаточно мала, градиент близок к нулю, и модель думает что нашла дно,хотя настоящее дно гораздо глубже.

🐇Случай 2️⃣: Большой
🔤🔤🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤
α =0.1
те же 🏠🏠🏠🏠🏠🏠🏠🏠🏠:
∂MSE/∂W1 =-653 333 333
∂MSE/∂W2 =-49 333 333
∂MSE/∂B =-10 666 667

⚖️Обновляем веса:
W1 =0-0.1*(-653333333)=65333333
W2 =+4933333
B =+1066667

Считаем предсказания:
ŷ1 = 65333333*50+4933333*3+1066667≈3282533316

Считаем новую ошибку:
y1 - ŷ1 =5000000-3282533316≈-3277533316

🔤🔤🔤🔤🔤🔤🔤🔤
Ошибка стала отрицательной и огромной
Теперь 🏠🏠🏠🏠🏠🏠🏠🏠 развернётся в другую сторону и перебросит нас обратно
Что происходит по итерациям:
Итерация 1: MSE≈32666000000000(старт)
Итерация 2: MSE≈890000000000000(перелетели)
Итерация 3: MSE≈24000000000000000(ещё дальше)
Итерация 4: MSE→ ∞(расходится)

Ошибка



│ * *
│ * *
│ *
│ минимум
└──────────────────────── итерации
прыгает туда-сюда через минимум
и улетает всё дальше🐦‍⬛️

Случай 3️⃣: Нормальный lr(α = 0.0001)

Итерация 1: MSE≈32666000000000
Итерация 50: MSE≈9000000000000
Итерация 800: MSE≈2000000000
Финальные веса:
W1≈95 000 (95 тыс. ₽ за каждый м²)
W2≈12 000 (12 тыс. ₽ за каждый этаж)
B≈450 000 (базовая стоимость участка)

Проверяем:
Дом 1=95000*50+12000*3+450000=5 236 000 ₽
Реальная цена=5 000 000 ₽

Дом 2=8 134 000 ₽
Реальная цена: 8 000 000 ₽

Дом 3=3 312 000 ₽
Реальная цена:3 000 000 ₽

Визуализация:
Ошибка

│ *
│ *
│ **
│ **
│ ***
└────────────● итерации
минимум
Плавно и уверенно спускаемся вниз

Итог:
Маленький lr → медленно и можно застрять
Нормальный lr → быстро и точно
Большой lr → перепрыгивает и расходится
От lr зависит обучения модели

В самом вверху есть LaTeX версия
Большое количество гифок про разный lr:
https://drive.google.com/drive/folders/12b1qNzm7q7XhZdPle0Dkm2pTeL71KfzI?usp=sharing
Please open Telegram to view this post
VIEW IN TELEGRAM
111🔥4👍2👻1
latex__version.pdf
94.2 KB
Виды задач 🔤🔤🔤🔤🔤🔤🔤
🔤🔤🔤🔤🔤🔤🔤🔤
Задачи делятся на Обучение с учителем (Регрессия Классификация), Классификация, Кластеризация, Ансамбли моделей.

1. Обучение с учителем👨‍🏫

Здесь у нас есть данные X и правильные ответы y.
Модель смотрит на примеры и пытается вывести правило, которое переводит X в y.

Обычно тут две основные задачи:

1)⬇️ Регрессия
Предсказываем число: цену квартиры, температуру, спрос, выручку.

🔹 Линейная регрессия
Пытается провести оптимальную гиперплоскость через данные так, чтобы минимизировать ошибку, чаще всего MSE.

🔹 Ridge / Lasso
Это линейная регрессия, но с регуляризацией — штрафом за слишком большие веса.

- Ridge (L2) сжимает веса
- Lasso (L1) может вообще занулять ненужные признаки

Идея простая: не дать модели переобучиться и заставить ее опираться не на шум, а на реальные закономерности.

🔹 kNN
На этапе обучения почти ничего не делает.
Во время прогноза просто ищет K ближайших соседей в пространстве признаков и усредняет их ответы.

2) Классификация👍 👎
Предсказываем категорию: спам/не спам, ушел клиент/не ушел, мошенничество/норма.

🔹 Логистическая регрессия
Строит линейную границу, но пропускает результат через сигмоиду, чтобы получить вероятность класса от 0 до 1.

🔹 SVM
Ищет такую разделяющую плоскость, чтобы зазор между классами был максимальным.
Чем шире этот зазор, тем устойчивее модель к новым данным.

🔹 Наивный Байес
Опирается на теорему Байеса.
Считает, насколько вероятен класс при данных признаках, предполагая, что признаки независимы друг от друга.

🔹 kNN
Тот же принцип ближайших соседей, только теперь соседи не усредняются, а голосуют за класс.

2. 🧩 Обучение без учителя

Здесь правильных ответов y нет.
Есть только сырые данные, и модель должна сама найти в них структуру.

🫂 Кластеризация
Нужно разбить объекты на группы так, чтобы внутри группы они были похожи, а между группами — различались.

🔹 K-Means
Мы заранее задаем число кластеров K.
Алгоритм:

1. ставит K случайных центров
2. относит каждую точку к ближайшему центру
3. сдвигает центр в середину своего кластера
И так до тех пор, пока центры не перестанут меняться.

🔹 DBSCAN
Ищет кластеры не по центру, а по плотности.
Если точки лежат густо, алгоритм объединяет их в кластер.
Если точка лежит далеко от плотных областей, она считается шумом.

Это удобно, когда кластеры имеют сложную форму и когда важно выделять выбросы.

📉Снижение размерности
Иногда признаков слишком много: часть из них шумит, часть дублирует друг друга.
Тогда данные хочется сжать, сохранив главное.

🔹 PCA
Метод главных компонент линейно проецирует данные в пространство меньшей размерности так, чтобы сохранить максимальную дисперсию.
Грубо говоря, он ищет направления, вдоль которых данные различаются сильнее всего, и выбрасывает менее полезные.

🚨 Поиск аномалий
Иногда нас интересуют не типичные объекты, а наоборот — редкие и странные.

🔹 Isolation Forest
Строит случайные деревья и пытается «изолировать» точки.
Обычные объекты похожи друг на друга, поэтому для их изоляции нужно много шагов.
Аномалии сильно отличаются от остальных и отделяются очень быстро.


3. 🌳Ансамбли моделей
Важно понимать: ансамбль — это не отдельный тип задачи, а способ усилить модель.

Одиночные модели, особенно деревья, могут быть нестабильными.
Если объединить много моделей вместе, качество обычно становится выше.

🎒 Bagging
Обучаем много моделей параллельно на случайных подвыборках данных.
Потом усредняем или голосуем.

👑Random Forest
Это ансамбль решающих деревьев.

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

🚀 Boosting
Здесь модели обучаются последовательно.

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

Главные модели:
- XGBoost
- LightGBM
- CatBoost
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥3
latex.pdf
202.9 KB
📊 Метрики ML с формулами и интерпретациями

Нет «лучшей» метрики — есть подходящая под задачу.

1️⃣ Метрики классификации

📌 Основа классификации — Матрица ошибок
            Предсказали 1    Предсказали 0
Реально 1 TP FN
Реально 0 FP TN

- TP — правильно нашли положительный класс
- TN — правильно нашли отрицательный
- FP — ложная тревога
- FN — пропуск

Accuracy
Accuracy = (TP + TN) / (TP + TN + FP + FN)

Интерпретация:
Доля правильных ответов.
⚠️ Обманчива при дисбалансе классов.

Precision
Precision = TP / (TP + FP)


Интерпретация:
Когда модель говорит «1» — насколько ей можно доверять?
👉 Важно, когда ложные срабатывания дорогие
(бан нормального пользователя).

Recall
Recall = TP / (TP + FN)

Интерпретация:
Какую долю реальных положительных объектов мы нашли?
👉 Важно, когда нельзя пропустить
(болезнь).

F1-score
F1 = 2 × (Precision × Recall) / (Precision + Recall) = 2*TP / (2*TP + FP + FN)

Интерпретация:
Баланс между Precision и Recall.
Если одна из метрик низкая — F1 тоже падает.

ROC-AUC
TPR = TP / (TP + FN)  
FPR = FP / (FP + TN)

ROC-кривая строится по TPR и FPR.
AUC — площадь под кривой.
Глубокая интерпретация:
Это вероятность того, что случайный положительный объект получит больший скор(score — это числовая оценка модели для объекта (например, вероятность мошенничества 0.82)), чем случайный отрицательный.

LogLoss
LogLoss = -mean( y·log(p) + (1-y)·log(1-p) ) = -(1/N) * Σ [ y_i*log(p_i) + (1-y_i)*log(1-p_i) ]

где:
- y — реальный класс (0 или 1)
- p — предсказанная вероятность

Интерпретация:
Оценивает качество вероятностей.
Сильно штрафует за уверенные ошибки.
Чем меньше — тем лучше калибрирована модель.

MCC
MCC = (TP·TN − FP·FN) /  
√((TP+FP)(TP+FN)(TN+FP)(TN+FN))

Интерпретация:
Корреляция между предсказанием и реальностью.
От -1 до 1.
Хорошо работает при сильном дисбалансе.

2️⃣Метрики регрессии

y — реальное значение
ŷ — предсказание

MAE
MAE = (1/N) * Σ |y_i - ŷ_i|

Интерпретация:
Средняя ошибка в тех же единицах.
MAE = 3000 → в среднем ошибаемся на 3000 рублей.

MSE
MSE = (1/N) * Σ (y_i - ŷ_i)^2

Интерпретация:
Сильно штрафует большие ошибки.
Если модель «промахивается» очень сильно — MSE резко растёт.

RMSE
RMSE = √MSE = sqrt((1/N) * Σ (y_i - ŷ_i)^2)

Интерпретация:
Показывает средний размер ошибки в тех же единицах, что и целевая переменная
Если RMSE существенно больше MAE → вероятно присутствуют крупные ошибки (выбросы).


R² = 1 - [ Σ (y_i - ŷ_i)^2 / Σ (y_i - ȳ)^2 ]

Интерпретация:
R² = 0.8 →
модель объясняет 80% вариации данных.
0 → не лучше среднего
< 0 → хуже среднего

MAPE
MAPE = (100%/N) * Σ |(y_i - ŷ_i) / y_i|

Интерпретация:
Средняя процентная ошибка.
MAPE = 12% → в среднем модель ошибается на 12%

3️⃣Ранжирование

NDCG (Normalized Discounted Cumulative Gain)
DCG@K = Σ (rel_i / log2(i + 1)),   i = 1..K
NDCG@K = DCG@K/ IDCG@K(максимально возможное DCG)

- K — сколько позиций мы оцениваем (например, топ‑10)
- i — позиция в выдаче
- rel_i — релевантность объекта на позиции i
Интерпретация:
Насколько близка текущая сортировка к идеальной?
0 ≤ NDCG ≤ 1

MRR
MRR = (1/N) * Σ (1 / rank_i)

N — число запросов (или пользователей)
rank_i — позиция первого релевантного результата для i-го запроса

Интерпретация:
Насколько быстро пользователь увидит первый правильный ответ.

4️⃣ Кластеризация

Silhouette
s = (b − a) / max(a, b)

где:
- a — среднее расстояние внутри кластера
- b — расстояние до ближайшего другого кластера
-1 ≤ s ≤ 1

Интерпретация:
~1 → объект хорошо «сидит» в своём кластере
~0 → кластеры пересекаются
<0 → объект, вероятно, попал не в свой кластер

Davies–Bouldin Index (DBI)
DBI = (1/k) * Σ max_{j≠i} [ (S_i + S_j) / M_ij ],  i = 1..k

- k — число кластеров
- S_i — среднее расстояние объектов кластера i до его центра
- M_ij — расстояние между центрами кластеров i и j
- max_{j≠i} — берём наиболее «похожий» соседний кластер

Интерпретация:
Чем меньше DBI — тем лучше.
DBI → 0 → кластеры компактные и хорошо разделены.
Большой DBI → кластеры размытые и/или пересекаются.
DBI ≥ 0
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍6🔥6