Telegram Web Link
Объясните, как используется энтропия в процессе построения дерева решений? Что ещё может использоваться вместо энтропии?

Энтропия измеряет непредсказуемость реализации случайной величины, или иными словами неопределённость в данных.

🌲 В контексте построения дерева-классификатора объекты — это случайные величины, которые могут принимать значение либо первого, либо второго класса. Если случайная величина принимает только одно значение, то она абсолютно предсказуема, и энтропия равна нулю. Если энтропия близка к единице, это значит, что случайная величина непредсказуема.

При построении дерева мы стремимся разбить объекты так, чтобы с получившимися группами энтропия была минимальной. Пример:
🟡 Допустим, у нас есть по 25 точек каждого класса — всего 50. Сначала мы выбираем разбиение, например, по X <= 5. Тогда в левую часть попадают 25 точек класса 0 и 12 точек класса 1, а в правую — ноль точек класса 0 и 13 точек класса 1. Энтропия левой группы равна 0.9, а правой — нулю. Это логично, ведь в правой группе все объекты принадлежат только одному классу, неопределённости нет.
🟡 Мы сделаем ещё несколько разбиений и выберем из них то, которое радикальнее всего уменьшит общую неопределённость системы.

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

#junior
#middle
🔥7👍61💯1
🔥 -50% на курс по математике + курс по machine learning в подарок

😲 В честь черной пятницы курс «Математика для Data Science» со скидкой 50%!

14 990 рублей 29 990 рублей до 30 ноября

🐣 На курсе вы получите все необходимые знания для старта карьеры в DS или аналитике.

Что еще вас ждет на курсе:

▪️ Полугодовая программа от преподавателей ВМК МГУ;

▪️ Бессрочный доступ ко всем материалам курса;

▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.

🎁 Но это еще не все!

⚡️При покупке курса по математике, вы получите курс по machine learning в подарок!

👉 Переходите на сайт и изучайте подробности – https://proglib.io/w/ca575581

До встречи на обучении 🙌
В чём разница между L1- и L2-регуляризациями?

Обе техники используются, чтобы предотвратить переобучение модели.

🔷 L1-регуляризация добавляет к функции потерь штраф, пропорциональный абсолютному значению весов, а L2-регуляризация — штраф, пропорциональный квадрату величины весов.
🔷 L1-регуляризация может обнулять некоторые веса. L2-регуляризация обычно так не делает, но приближает веса к нулю, что уменьшает влияние отдельных признаков на результат.

#junior
#middle
👍8🔥1
Чем различаются стекинг (Stacking) и блендинг (Blending)?

▪️Стекинг — это способ построения ансамблей, при котором результаты базовых алгоритмов объединяются в один с помощью обучаемой мета-модели.
Например, мы делим тренировочную выборку на n частей (фолдов). Затем на каждом шаге мы обучаем базовые алгоритмы на n — 1 фолдах и используем последний оставшийся фолд для предсказания (вычисления мета-признаков). На полученных мета-признаках обучается мета-модель. Описанный нами метод похож на кросс-валидацию.
▪️Блендинг — упрощённый подход. Мы просто делим тренировочную выборку на две непересекающиеся части. На первой учим базовые алгоритмы, на второй — делаем предсказания и далее строим мета-модель.

#junior
#middle
👍8
Как определить процент объяснённой дисперсии при использовании метода главных компонент (PCA)?

При PCA происходит расчёт ковариационной матрицы, а также её собственных значений и собственных векторов. После их нахождения собственные значения сортируются по убыванию, и соответствующие им собственные векторы формируют матрицу главных компонент. Нас интересует процент дисперсии, которую объясняют эти компоненты.

▪️Сначала нужно вычислить общую дисперсию. Это сумма всех собственных значений.
▪️Процент объяснённой дисперсии для каждой компоненты рассчитывается как отношение собственного значения этой компоненты к полученной сумме. Затем результат умножается на 100, чтобы получить процент.
▪️Чтобы оценить объясняющий вклад k первых компонент, можно суммировать их индивидуальные проценты объяснённой дисперсии.

Также мы можем вычислить процент потерянной дисперсии, если просто вычтем из 100 процент объяснённой.

#middle
#senior
🔥9
🔮Что такое проклятие размерности и как с ним справиться?

Проблема в том, что в высокоразмерных пространствах данные становятся очень разреженными. Вот пример:

🟣 Допустим, мы используем метод ближайших соседей для задачи классификации. Чтобы алгоритм хорошо работал, объекты должны быть расположены достаточно плотно в пространстве признаков. Так, в единичном интервале [0,1] ста равномерно разбросанных точек будет достаточно, чтобы покрыть этот интервал с частотой не менее 0.01. Однако если мы возьмём 10-мерный куб, то для той же степени покрытия потребуется уже 10^{20} точек.

Если данные будут сильно разбросаны в многомерном пространстве, то вероятность переобучения увеличивается. В общем, большое количество признаков требует всё более объёмных наборов данных.

Что можно с этим сделать:
✔️провести отбор признаков;
✔️снизить размерность данных с помощью метода главных компонент (PCA).
👍14
🧑‍💻 Решение задачи про поиск повторяющихся элементов в массиве

Задача: Дан массив с целыми числами длины n, все элементы которого лежат в диапазоне [1, n]. Каждый элемент появляется в массиве либо единожды, либо дважды. Требуется найти все числа, которые появляются дважды. Алгоритм должен работать за O(n).

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

Решение 2 (быстрее и использует меньше памяти):
Используем тот факт, что все числа массива находятся в диапазоне от 1 до n. Создаём результирующий список и идём в цикле по массиву. Вычисляем на основе каждого элемента index, а затем берём элемент массива по этому индексу. Если элемент по индексу неотрицательный, то заменяем его отрицательным. Если отрицательный, то добавляем изначальный элемент в результирующий список.

#junior
#middle
🔥71
Что такое закон больших чисел и как его используют в Data Science?

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

🔢 В Data Science закон больших чисел может использоваться в таких областях, как прогностическое моделирование, оценка рисков и контроль качества. Он помогает гарантировать, что среднее значение результатов большого числа независимых испытаний будет сходиться к ожидаемому значению. Это обеспечивает основу для статистического вывода и проверки гипотез.

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

#junior
#middle
👍142
Зачем метрику качества регрессии возводить в квадрат?

Речь идёт о среднеквадратичной ошибке (Mean Squared Error, MSE). От средней абсолютной ошибки (Mean Absolute Error, MAE) она отличается тем, что в ней разница между предсказанным и истинным значением возводится в квадрат. Но зачем это нужно?

▪️MSE сильнее штрафует за большие ошибки. У этого есть как плюсы, так и минусы. Если мы действительно очень не хотим получать большие ошибки, то квадратичный штраф за них очень полезен. Но если в тестовых данных есть выбросы, то использовать MSE становится менее удобно.

#junior
#middle
👍6🥱2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Как понять, что ваша модель столкнулась с проблемой взрывающихся градиентов?

Градиент — это вектор частных производных функции потерь по весам нейронной сети. В процессе обратного распространения ошибки в градиенте могут накапливаться большие значения. В итоге такие элементы градиента могут переполнить тип данных, в котором они хранятся. Это и называется взрывающимися градиентами (exploding gradients).

Вот признаки:
▪️Высокое значение функции потерь. Отражает неспособность модели обучиться на данных.
▪️Скачки значения функции потерь. Показывают, что модель нестабильна.
▪️Функция потерь во время обучения может принимать значение NaN.

Также на проблему взрывающихся градиентов могут указывать:
▫️Быстрый рост весов модели.
▫️Значения NaN у весов модели во время обучения.

#junior
#middle
🎉4
Знаете ли вы про PR-кривую? Где она применяется?

PR-кривая расшифровывается как Precision-Recall кривая. Может напомнить ROC-AUC, и в некоторых случаях заменяет именно её.

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

Чтобы избежать этого, можно воспользоваться PR-кривой, которая строится в осях Precision и Recall.

#junior
#middle
3🥰2👍1
Как проводится кросс-валидация?

Кросс-валидация используется при обучении модели как альтернатива стандартному разбиению выборки на тренировочную и тестовую части.

При кросс-валидации мы:
▪️ делим выборку на k частей, или фолдов (обычно 3, 5, 10);
▪️ производим k итераций, при которых обучаем модель на k−1 частях выборки и тестируем её на оставшейся части.

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

#junior
#middle
👍11😱1
Как выбрать k для кросс-валидации?

Выбор k для кросс-валидации зависит от размера и природы ваших данных. Есть несколько рекомендаций:
▪️Для больших наборов данных часто используют меньшие значения k, чтобы сбалансировать точность оценки и вычислительные затраты.
▪️В целом, если ресурсы ограничены, стоит выбрать меньшее k.
▪️Максимальное значение k может быть равным размеру выборки, n. Тогда мы получаем метод leave-one-out (LOO), при котором каждый фолд состоит ровно из одного образца. Хорош для случаев, когда у нас очень мало данных и мы хотим использовать максимальное их количество для обучения модели.
▪️Также можно использовать stratified k-Fold. В этом случае каждый фолд имеет примерно такое же соотношение классов, как и всё исходное множество. Это может пригодиться, если данные несбалансированные.

#junior
#middle
👍5
⚡️Свершилось: канал с книгами только по Data Science

Мы создали для вас канал, куда будем публиковать самые полезные книги только для специалистов по Data Science. Подписывайтесь!

👉Книги для дата сайентистов | Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
📊Статистический тест в общем случае

1️⃣Собираем выборку.
2️⃣Формулируем гипотезы. Должны быть нулевая гипотеза («ничего не изменилось», «связи нет») и альтернативная («что-то изменилось», «связь есть»).
3️⃣Объединяем величины из выборки в одну случайную величину, называемую статистикой.
4️⃣Нужно найти распределение этой случайной величины при условии, что выполнена нулевая гипотеза.
5️⃣Выбираем уровень значимости, то есть число, отвечающее за вероятность ошибки первого рода (вероятность отвергнуть нулевую гипотезу, в случае, когда она верна).
6️⃣Случайная величина принимает значения в множестве действительных чисел. Нужно выделить подмножество, по которому мы будем решать, принимать или отвергать нулевую гипотезу. Вероятность попадания в подмножество должна быть равна уровню значимости.
7️⃣Если реализация нашей случайной величины не попала в критическое подмножество, то мы принимаем нулевую гипотезу. Если попала — отвергаем нулевую гипотезу и принимаем альтернативную.
7👍5🥱2
Вы решаете задачу кластеризации. Какие метрики могут быть использованы и как выбрать между ними?

Можно назвать две разных метрики для алгоритмов кластеризации — Силуэт (англ. Silhouette) и Индекс Данна (англ. Dunn Index).

▫️Силуэт показывает, насколько объект похож на объекты своего кластера по сравнению с другими кластерами. Значение метрики лежит в диапазоне от -1 до +1. Чем ближе Силуэт к единице, тем более кластеры кучные и хорошо отделены друг от друга.
▫️Индекс Данна равен минимальному расстоянию между кластерами, делённому на максимальный размер кластера. Большие расстояния между кластерами и меньшие размеры кластеров приводят к более высокому значению индекса.

Индекс Данна хорошо подходит, когда важно, чтобы кластеры были как можно более отделены друг от друга и компактны. Силуэт можно использовать, когда важна чёткость и согласованность границ кластеров.

#junior
#middle
6👍2
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈
У вас есть датасет с большим количеством признаков (фичей). Какие методы отбора признаков вы знаете?

Можно назвать несколько методов (это неполный список):
✔️Жадные алгоритмы.
- Эти алгоритмы работают последовательно, на каждом шаге выбирая признак, который предлагает наибольшее улучшение производительности модели.
- Есть «жадное добавление», когда новые признаки добавляются один за другим, и «жадное удаление», когда признаки удаляются до тех пор, пока это не навредит производительности.
✔️Случайный поиск с адаптацией.
Вместо просмотра всех возможных комбинаций, этот метод генерирует случайные подмножества признаков и оценивает их. Со временем метод адаптируется, предпочитая подмножества, которые демонстрируют лучшую производительность.

🔗 Также можно изучить целый сайт, посвящённый отбору признаков

#junior
#middle
👍4
Что вы знаете про юнит-тесты для моделей машинного обучения?

Юнит-тесты в ML никак не касаются проверок производительности модели. Они должны проверять качество кода. Например:
🔹Принимает ли модель на вход корректные данные или их представление?
🔹Корректен ли выход модели по форме?
🔹Действительно ли обновляются веса модели при обучении?

Тесты для ML-моделей не всегда строго следуют лучшим практикам стандартных юнит-тестов. Так, имитируются не все внешние вызовы. Здесь больше общего с интеграционными тестами.

Как имплементировать тесты в модели глубокого обучения? Вот примеры:
✔️Построить модель и сравнить размерность входных слоёв с размерностью в источнике данных. Затем сравнить размерность выходного слоя с ожидаемой.
✔️Инициализировать модель и записать веса каждого слоя. Затем обучить в течение одной эпохи на наборе фиктивных данных и сравнить новые веса со старыми. Нужно просто убедиться, что значения изменились.
✔️Обучите модель в течение одной эпохи на наборе фиктивных данных и проведите валидацию на таких же фиктивных данных. Необходимо убедиться, что предсказания получаются в ожидаемом формате.

#middle
👍5
2025/07/12 16:35:09
Back to Top
HTML Embed Code: