Forwarded from ML-легушька
Тоже хотите собрать полный комплект яблочной техники? Тогда покупайте мои курсы изучайте статистику.
Сегодня полезный пост, в котором мы начнем собирать статистический словарик для начинающих ML-щиков и аналитиков.
0. Центральная предельная теорема.
Святой грааль теории вероятностей, из которого статистика как наука практически родилась. Что говорит ЦПТ? Если у нас есть много независимых случайных величин из одного распределения, то их среднее (как случайная величина) будет распределена нормально, причем математическое ожидание совпадет с мат.ожиданием одной случайной величины, а дисперсия будет дисперсией одной случайной величины, деленной на кол-во наблюдений. В частности, ошибки измерений и случайный шум часто распределены нормально, что позволяет использовать MSE-loss для моделей, приближающих данные, но про это в другом посте (поддержите активностью, если вам интересно!!!).
1. Статистические гипотезы.
Статистическая гипотеза представляет из себя утверждение о параметрах модели. В тестах обычно используется два вида гипотез - нулевая и альтернативная, обозначаются H0 и H1 соответственно. Нулевая гипотеза - та, которую мы примем, если не соберем достаточных доказательств ее неправильности. Соответственно, ее можно составить по формуле "при отсутствии данных принимаем такое же решение, как если бы было верно...".
Альтернативная гипотеза - гипотеза, требующая доказательств, то есть данных, свидетельствующих о ее правильности и о том, что нулевая гипотеза неверна. Пример: вы - банк, нормальный банк, не МФО, и на основе данных хотите принять решение, является ли заемщик надежным? Тут нулевой гипотезой будет то, что заемщик - ненадежный, ибо зачем без доказательств выдавать кредит кому попало? Это экономически невыгодно.
2. Статистические тесты, уровень значимости, мощность.
После того, как мы определились с гипотезами, нужно их проверить - для этого и нужны статистические тесты. Статистические тесты вычисляют функцию от наблюдений, называемую статистику, и проверяют, попало ли это значение в "критический регион" - множество значений, при которых мы отклоняем нулевую гипотезу. Критический регион основан на знании о том, как распределена тестовая статистика. Тесты бывают односторонние и двусторонние. При одностороннем тесте вы сравниваем тестовую статистику только с одним числом, в двустороннем тесте - с двумя числами. Подробнее с этим мы разберемся в практическом примере.
Однако, помимо формулирования гипотез, перед проведением теста необходимо определиться с уровнем значимости. Уровень значимости показывает, как часто наш тест неверно отклоняет нулевую гипотезу. Более формально - это вероятность отклонить H0 при условии ее правильности. В примере с банком - как часто мы выдаем кредит ненадежным заемщикам. От уровня значимости будет зависеть критический регион теста. Обычно используется значение 0.05 - то есть мы позволяем тесту ошибочно отвергать H0 не более чем в 5% случаев.
Почему же мы не можем поставить уровень значимости очень маленьким, скажем, 0.01%, чтобы почти никогда неверно не отклонять H0? Пострадает мощность. Мощность показывает, как часто мы правильно отклоняем H0, для случая с банком - как часто мы выдаем кредит надежным заемщикам. Если поставить уровень значимости очень низким, то почти все заемщики вернут нам кредит, но самих заемщиков станет сильно меньше! При уменьшении уровня значимости мощность обычно падает, и итоговая значимость будет зависеть от наших бизнес-целей.
Сегодня полезный пост, в котором мы начнем собирать статистический словарик для начинающих ML-щиков и аналитиков.
0. Центральная предельная теорема.
Святой грааль теории вероятностей, из которого статистика как наука практически родилась. Что говорит ЦПТ? Если у нас есть много независимых случайных величин из одного распределения, то их среднее (как случайная величина) будет распределена нормально, причем математическое ожидание совпадет с мат.ожиданием одной случайной величины, а дисперсия будет дисперсией одной случайной величины, деленной на кол-во наблюдений. В частности, ошибки измерений и случайный шум часто распределены нормально, что позволяет использовать MSE-loss для моделей, приближающих данные, но про это в другом посте (поддержите активностью, если вам интересно!!!).
1. Статистические гипотезы.
Статистическая гипотеза представляет из себя утверждение о параметрах модели. В тестах обычно используется два вида гипотез - нулевая и альтернативная, обозначаются H0 и H1 соответственно. Нулевая гипотеза - та, которую мы примем, если не соберем достаточных доказательств ее неправильности. Соответственно, ее можно составить по формуле "при отсутствии данных принимаем такое же решение, как если бы было верно...".
Альтернативная гипотеза - гипотеза, требующая доказательств, то есть данных, свидетельствующих о ее правильности и о том, что нулевая гипотеза неверна. Пример: вы - банк, нормальный банк, не МФО, и на основе данных хотите принять решение, является ли заемщик надежным? Тут нулевой гипотезой будет то, что заемщик - ненадежный, ибо зачем без доказательств выдавать кредит кому попало? Это экономически невыгодно.
2. Статистические тесты, уровень значимости, мощность.
После того, как мы определились с гипотезами, нужно их проверить - для этого и нужны статистические тесты. Статистические тесты вычисляют функцию от наблюдений, называемую статистику, и проверяют, попало ли это значение в "критический регион" - множество значений, при которых мы отклоняем нулевую гипотезу. Критический регион основан на знании о том, как распределена тестовая статистика. Тесты бывают односторонние и двусторонние. При одностороннем тесте вы сравниваем тестовую статистику только с одним числом, в двустороннем тесте - с двумя числами. Подробнее с этим мы разберемся в практическом примере.
Однако, помимо формулирования гипотез, перед проведением теста необходимо определиться с уровнем значимости. Уровень значимости показывает, как часто наш тест неверно отклоняет нулевую гипотезу. Более формально - это вероятность отклонить H0 при условии ее правильности. В примере с банком - как часто мы выдаем кредит ненадежным заемщикам. От уровня значимости будет зависеть критический регион теста. Обычно используется значение 0.05 - то есть мы позволяем тесту ошибочно отвергать H0 не более чем в 5% случаев.
Почему же мы не можем поставить уровень значимости очень маленьким, скажем, 0.01%, чтобы почти никогда неверно не отклонять H0? Пострадает мощность. Мощность показывает, как часто мы правильно отклоняем H0, для случая с банком - как часто мы выдаем кредит надежным заемщикам. Если поставить уровень значимости очень низким, то почти все заемщики вернут нам кредит, но самих заемщиков станет сильно меньше! При уменьшении уровня значимости мощность обычно падает, и итоговая значимость будет зависеть от наших бизнес-целей.
🔥7🍌4⚡2
Почему ты получаешь отказы после прохождения собеса? Или Алгоритм прохождения собесов
Проблема:
Очень часто такое бывает, что человек проходит 1000 скринингов с HR`ом, 500 техничек и 100 финалок, но всё равно не получает оффер. А почему? Всё очень просто, нужно всего лишь попросить фидбек и исправить свои ошибки
Вроде бы это простая истина, но много моих учеников не понимают такого простого алгоритма:
Чтобы получить оффер, нам нужно уметь проходить собеседования (оффер = вкачанный навык прохождения собеседования). Поэтому на данном этапе наша цель получить как можно больше приглашений на скрининг и попасть на следующие этапы собеседования.
Если мы проебали на каком-то определённом этапе собеседования, то нам обязательно нужно попросить фидбек. Прям не бойтесь мучить HR`ом своими вопросами. Запомните, глупый вопрос это тот вопрос, который не спросили.
Независимо от этапа пишите сообщение вида:
Здравствуйте! Подскажите, пожалуйста, почему мне дали отказ? Для меня очень важно понять, где мои ошибки и пробелы в знаниях, поэтому прошу вас дать фидбек. Буду благодарен)
Также будет ОГРОМНЫМ плюсом, если вы будете записывать собеседование и потом его пересматривать. Хоть это и на первых порах будет вызывать дискомфорт, но результат не заставит долго ждать, если вы будете грамотно анализировать свои ошибки.
Тут мы получили фидбек и поняли, что мы не знаем, что такое 'операция умножения и сколько существует цифр'. Теперь мы рассматриваем это не как проблему, а как задачу и задать себе следующий вопрос: "А что я могу сделать, чтобы на следующем собеседовании не допустить такую ошибку?". Нужно понять, как мы можем это исправить.
Нам нужно найти материалы, статьи, видео в ютубе, которые помогут нам в решение данной задачи. Выучить это, сделать конспект, шпаргалку, но не допустить, чтобы это повторилось не повторилось на следующем собесе.
Мой пример: Я очень часто могу забыть какую-нибудь формулу, поэтому на собесах использую шпаргалку. Тогда стоит мне чуть взглянуть на неё, я сразу понимаю какой элемент за что отвечает.
Итог
Повторю, получение оффера = навык проходить собесы; навык проходит собесы = повторение шагов 1-4. Выполняя эти простые действия, вы точно получите оффер!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🍌6⚡4💯2❤1❤🔥1
Итоги of the year и планы на next year
Чем ещё я буду вас радовать в следующем году
Было проделано не мало работы над качеством и структурой постов и в целом над каналом
- выработал собственный стиль постов: заголовок, подзаголовки, смайлики и смехуюшечки
- определился со своей ЦА в тг-канале: в основном я делаю контент для начинающий ребят, перекатунов и мидлов. В основном посты про найм, как/где/зачем найти работу в DS, выкладываю посты с объяснением материалов из серии "уничтожение" с надеждой, что их кто-то сохраняет и действительно читает
- по цифрам достиг ~930 подписоты к НГ, а в планах было 1к..., но ничего мы ещё добьём!
Надеюсь, что ваши цели в этом году были достигнуты, и вы уже поставили цели на следующий год! Буду вам очень благодарен, если напишите в комментах:
- Свою цель на 2024
- Насколько вы выполнили её в 2024
- И цель на 2025 год
Не стесняйтесь, давайте вместе подведём итоги года)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34🍌9👍5❤🔥1🎉1💩1
Вопросы, которые вам обязательно зададут на типичном собесе по 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