Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🔈16+ лучших нейронок для синтеза речи
Предлагаем подборку платных, бесплатных и опенсорсных инструментов для озвучивания текста, клонирования голоса и дублированного перевода подкастов и видео.
Читать статью
Предлагаем подборку платных, бесплатных и опенсорсных инструментов для озвучивания текста, клонирования голоса и дублированного перевода подкастов и видео.
Читать статью
👍3
Вопросы для собеседований на какой грейд вы хотели бы видеть чаще?
Anonymous Poll
56%
junior
44%
middle
22%
senior
Как изменится ROC-AUC, если к вероятностям принадлежности к первому классу применить логарифм?
ROC-AUC показывает, насколько хорошо модель сортирует (ранжирует) объекты класса. От абсолютных значений вероятностей метрика не зависит. Следовательно, применение логарифма не изменит значение ROC-AUC. Логарифмическая функция является монотонной, то есть она сохраняет порядок чисел: если одно число больше другого, то и его логарифм также будет больше.
👍15
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
Чем логистическая регрессия отличается от линейной?
Если линейная регрессия предсказывает само значение целевой переменной, то логистическая используется для предсказания вероятности того, что объект принадлежит к определённому классу. Своё название логистическая регрессия берёт из того, что изначально прогнозирует логит (logit или log odd), логарифм отношения вероятности положительного события к отрицательному. Логит можно преобразовать в вероятность, например, через сигмоиду (если мы говорим о бинарной классификации).
Что касается оптимизации, то линейная регрессия использует метод наименьших квадратов, а в логистической регрессии может применяться оценка максимального правдоподобия.
#junior
Если линейная регрессия предсказывает само значение целевой переменной, то логистическая используется для предсказания вероятности того, что объект принадлежит к определённому классу. Своё название логистическая регрессия берёт из того, что изначально прогнозирует логит (logit или log odd), логарифм отношения вероятности положительного события к отрицательному. Логит можно преобразовать в вероятность, например, через сигмоиду (если мы говорим о бинарной классификации).
Что касается оптимизации, то линейная регрессия использует метод наименьших квадратов, а в логистической регрессии может применяться оценка максимального правдоподобия.
#junior
👍9🔥4
Для чего используют batch normalization?
Это метод, который нормализует входы нейросети. На специальном слое batch normalization текущий батч (пакет данных) приводится к нулевому среднему и единичной дисперсии.
Это позволяет:
⚫ быстрее обучаться, так как все числа получаются одного порядка;
⚫ улучшить сходимость нейросети;
⚫ сделать сеть менее чувствительной к выбору начальных значений весов;
⚫ даже бороться с переобучением.
Стоит отметить, что до сих пор идут дискуссии о причинах эффективной работы batch normalization.
#junior
#middle
Это метод, который нормализует входы нейросети. На специальном слое batch normalization текущий батч (пакет данных) приводится к нулевому среднему и единичной дисперсии.
Это позволяет:
⚫ быстрее обучаться, так как все числа получаются одного порядка;
⚫ улучшить сходимость нейросети;
⚫ сделать сеть менее чувствительной к выбору начальных значений весов;
⚫ даже бороться с переобучением.
Стоит отметить, что до сих пор идут дискуссии о причинах эффективной работы batch normalization.
#junior
#middle
❤6
Какие метрики качества ранжирования вы знаете?
Такие метрики используются для оценки эффективности алгоритмов ранжирования, часто применяемых в рекомендательных системах.
🟠 Precision at K (p@K). Это метрика качества ранжирования для одного объекта. Измеряет долю релевантных элементов среди первых k элементов в ранжированном списке.
🟠 Mean average precision at K (map@K). Чаще всего мы имеем дело со множеством объектов, а не с одним, например с сотнями тысяч пользователей. Идея map@K заключается в том, чтобы сначала вычислить среднее precision at K для каждого объекта, а затем усреднить итог.
🟠 Normalized Discounted Cumulative Gain (NDCG). Здесь разберём поэтапно:
- Сначала рассмотрим один объект и k наиболее релевантных элементов. Это будет Cumulative gain at K (CG@K), метрика, которая использует простую идею: чем более релевантные элементы в этом топе, тем лучше.
- Далее введём Discounted cumulative gain at K (DCG@K). Это модификация CG@K, учитывающая порядок элементов в списке. Необходимо домножить показатель релевантности элемента на вес равный обратному логарифму номера позиции.
- В конце концов придём к normalized discounted cumulative gain at K (nDCG@K). Это нормализованная версия DCG@K. Данная метрика принимает значения в диапазоне от 0 до 1.
🟠 Mean Reciprocal Rank (MRR). Метрика усредняет обратные ранги первых правильно угаданных элементов по всем объектам.
Формулы можно найти в этой статье
#middle
Такие метрики используются для оценки эффективности алгоритмов ранжирования, часто применяемых в рекомендательных системах.
🟠 Precision at K (p@K). Это метрика качества ранжирования для одного объекта. Измеряет долю релевантных элементов среди первых k элементов в ранжированном списке.
🟠 Mean average precision at K (map@K). Чаще всего мы имеем дело со множеством объектов, а не с одним, например с сотнями тысяч пользователей. Идея map@K заключается в том, чтобы сначала вычислить среднее precision at K для каждого объекта, а затем усреднить итог.
🟠 Normalized Discounted Cumulative Gain (NDCG). Здесь разберём поэтапно:
- Сначала рассмотрим один объект и k наиболее релевантных элементов. Это будет Cumulative gain at K (CG@K), метрика, которая использует простую идею: чем более релевантные элементы в этом топе, тем лучше.
- Далее введём Discounted cumulative gain at K (DCG@K). Это модификация CG@K, учитывающая порядок элементов в списке. Необходимо домножить показатель релевантности элемента на вес равный обратному логарифму номера позиции.
- В конце концов придём к normalized discounted cumulative gain at K (nDCG@K). Это нормализованная версия DCG@K. Данная метрика принимает значения в диапазоне от 0 до 1.
🟠 Mean Reciprocal Rank (MRR). Метрика усредняет обратные ранги первых правильно угаданных элементов по всем объектам.
Формулы можно найти в этой статье
#middle
👍8
👨💼С точки зрения бизнес-процессов в чём разница между метрикой качества и функцией потерь?
Метрика качества напрямую связана с бизнес-целями. Она должна отвечать заказчику на вопрос: как построенная модель улучшает работу сервиса/компании? Например, бизнесу может быть интересна медианная длина сессии пользователя на сайте.
Если коротко:
✔️функция потерь возникает, когда мы сводим задачу построения модели к задаче оптимизации. Поэтому нам важно, чтобы она имела некоторые свойства, в частности была дифференцируемой;
✔️метрика же является объективным критерием качества, зачастую зависит только от предсказанных результатов.
Иногда метрика может совпадать с функцией потерь. Такое случается, например, при решении задачи регрессии, когда мы используем среднеквадратическую ошибку (MSE). А вот в задаче бинарной классификации чаще всего метрика и функция потерь не совпадают. В качестве первой может выступать число верно угаданных меток (accuracy), а в качестве второй — кросс-энтропия.
#junior
#middle
Метрика качества напрямую связана с бизнес-целями. Она должна отвечать заказчику на вопрос: как построенная модель улучшает работу сервиса/компании? Например, бизнесу может быть интересна медианная длина сессии пользователя на сайте.
Если коротко:
✔️функция потерь возникает, когда мы сводим задачу построения модели к задаче оптимизации. Поэтому нам важно, чтобы она имела некоторые свойства, в частности была дифференцируемой;
✔️метрика же является объективным критерием качества, зачастую зависит только от предсказанных результатов.
Иногда метрика может совпадать с функцией потерь. Такое случается, например, при решении задачи регрессии, когда мы используем среднеквадратическую ошибку (MSE). А вот в задаче бинарной классификации чаще всего метрика и функция потерь не совпадают. В качестве первой может выступать число верно угаданных меток (accuracy), а в качестве второй — кросс-энтропия.
#junior
#middle
👍8❤1
Как работает KNN (k-ближайших соседей, или k-nearest neighbors)?
Этот метод обычно используется для классификации объектов на основе ближайших к нему примеров. Вот основные шаги алгоритма:
🔷 Выбирается число k — параметр, определяющий количество соседей, по которым будет приниматься решение о классификации нового объекта.
🔷 Вычисляется расстояние между новым объектом и каждым из обучающих примеров. Обычно используется евклидово расстояние, но могут быть и другие метрики.
🔷 Алгоритм находит k обучающих примеров, самых близких к новому объекту.
🔷 Новому объекту назначают иаиболее часто встречающийся класс среди k соседей.
Стоит отметить, что KNN можно довольно легко обобщить и на задачу регрессии. Например, можно брать среднее по k соседям.
#junior
Этот метод обычно используется для классификации объектов на основе ближайших к нему примеров. Вот основные шаги алгоритма:
🔷 Выбирается число k — параметр, определяющий количество соседей, по которым будет приниматься решение о классификации нового объекта.
🔷 Вычисляется расстояние между новым объектом и каждым из обучающих примеров. Обычно используется евклидово расстояние, но могут быть и другие метрики.
🔷 Алгоритм находит k обучающих примеров, самых близких к новому объекту.
🔷 Новому объекту назначают иаиболее часто встречающийся класс среди k соседей.
Стоит отметить, что KNN можно довольно легко обобщить и на задачу регрессии. Например, можно брать среднее по k соседям.
#junior
🔥4👍3👏1🎉1
👩💻 Решение задачи на Python про сумму диагоналей матрицы
Задача: Дана матрица mat. Напишите функцию, которая возвращает сумму элементов диагоналей матрицы.
Первым делом следует уточнить у интервьюера, какие есть ограничения. Например, он сказал, что на вход мы получаем только квадратную матрицу, элементы на пересечении диагоналей считаются только один раз, элементы могут принимать значения от 1 до 100.
Тогда решение может выглядеть так:
🧩 Мы будем проходиться в цикле и сразу прибавлять к результату значения матрицы по индексам i (
Это будет решение за O(n), так как мы один раз проходимся в цикле по элементам матрицы.
#junior
#middle
Задача: Дана матрица mat. Напишите функцию, которая возвращает сумму элементов диагоналей матрицы.
Первым делом следует уточнить у интервьюера, какие есть ограничения. Например, он сказал, что на вход мы получаем только квадратную матрицу, элементы на пересечении диагоналей считаются только один раз, элементы могут принимать значения от 1 до 100.
Тогда решение может выглядеть так:
🧩 Мы будем проходиться в цикле и сразу прибавлять к результату значения матрицы по индексам i (
mat[i][i]
). Дальше будем смотреть: если i не равно n-i-1, где n — размер матрицы, значит мы прибавляем к результату mat[i][n-i-1]
. Эта проверка позволит нам избежать повторного прибавления к сумме элементов, которые стоят на пересечении диагоналей. Это будет решение за O(n), так как мы один раз проходимся в цикле по элементам матрицы.
#junior
#middle
👍12👏2❤1😢1
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.
В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги
👉Подписаться👈
В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги
👉Подписаться👈
👍1
Объясните, как используется энтропия в процессе построения дерева решений? Что ещё может использоваться вместо энтропии?
Энтропия измеряет непредсказуемость реализации случайной величины, или иными словами неопределённость в данных.
🌲 В контексте построения дерева-классификатора объекты — это случайные величины, которые могут принимать значение либо первого, либо второго класса. Если случайная величина принимает только одно значение, то она абсолютно предсказуема, и энтропия равна нулю. Если энтропия близка к единице, это значит, что случайная величина непредсказуема.
При построении дерева мы стремимся разбить объекты так, чтобы с получившимися группами энтропия была минимальной. Пример:
🟡 Допустим, у нас есть по 25 точек каждого класса — всего 50. Сначала мы выбираем разбиение, например, по X <= 5. Тогда в левую часть попадают 25 точек класса 0 и 12 точек класса 1, а в правую — ноль точек класса 0 и 13 точек класса 1. Энтропия левой группы равна 0.9, а правой — нулю. Это логично, ведь в правой группе все объекты принадлежат только одному классу, неопределённости нет.
🟡 Мы сделаем ещё несколько разбиений и выберем из них то, которое радикальнее всего уменьшит общую неопределённость системы.
🌲 Помимо энтропии можно использовать критерий Джини. Он представляет собой вероятность того, что случайно выбранный объект из набора будет неправильно классифицирован, если его случайно пометить согласно распределению меток в подвыборке.
#junior
#middle
Энтропия измеряет непредсказуемость реализации случайной величины, или иными словами неопределённость в данных.
🌲 В контексте построения дерева-классификатора объекты — это случайные величины, которые могут принимать значение либо первого, либо второго класса. Если случайная величина принимает только одно значение, то она абсолютно предсказуема, и энтропия равна нулю. Если энтропия близка к единице, это значит, что случайная величина непредсказуема.
При построении дерева мы стремимся разбить объекты так, чтобы с получившимися группами энтропия была минимальной. Пример:
🟡 Допустим, у нас есть по 25 точек каждого класса — всего 50. Сначала мы выбираем разбиение, например, по X <= 5. Тогда в левую часть попадают 25 точек класса 0 и 12 точек класса 1, а в правую — ноль точек класса 0 и 13 точек класса 1. Энтропия левой группы равна 0.9, а правой — нулю. Это логично, ведь в правой группе все объекты принадлежат только одному классу, неопределённости нет.
🟡 Мы сделаем ещё несколько разбиений и выберем из них то, которое радикальнее всего уменьшит общую неопределённость системы.
🌲 Помимо энтропии можно использовать критерий Джини. Он представляет собой вероятность того, что случайно выбранный объект из набора будет неправильно классифицирован, если его случайно пометить согласно распределению меток в подвыборке.
#junior
#middle
🔥7👍6❤1💯1
🔥 -50% на курс по математике + курс по machine learning в подарок
😲 В честь черной пятницы курс «Математика для Data Science» со скидкой 50%!
14 990 рублей29 990 рублей до 30 ноября
🐣 На курсе вы получите все необходимые знания для старта карьеры в DS или аналитике.
Что еще вас ждет на курсе:
▪️ Полугодовая программа от преподавателей ВМК МГУ;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🎁 Но это еще не все!
⚡️При покупке курса по математике, вы получите курс по machine learning в подарок!
👉 Переходите на сайт и изучайте подробности – https://proglib.io/w/ca575581
До встречи на обучении 🙌
😲 В честь черной пятницы курс «Математика для Data Science» со скидкой 50%!
14 990 рублей
🐣 На курсе вы получите все необходимые знания для старта карьеры в DS или аналитике.
Что еще вас ждет на курсе:
▪️ Полугодовая программа от преподавателей ВМК МГУ;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🎁 Но это еще не все!
⚡️При покупке курса по математике, вы получите курс по machine learning в подарок!
👉 Переходите на сайт и изучайте подробности – https://proglib.io/w/ca575581
До встречи на обучении 🙌
В чём разница между L1- и L2-регуляризациями?
Обе техники используются, чтобы предотвратить переобучение модели.
🔷 L1-регуляризация добавляет к функции потерь штраф, пропорциональный абсолютному значению весов, а L2-регуляризация — штраф, пропорциональный квадрату величины весов.
🔷 L1-регуляризация может обнулять некоторые веса. L2-регуляризация обычно так не делает, но приближает веса к нулю, что уменьшает влияние отдельных признаков на результат.
#junior
#middle
Обе техники используются, чтобы предотвратить переобучение модели.
🔷 L1-регуляризация добавляет к функции потерь штраф, пропорциональный абсолютному значению весов, а L2-регуляризация — штраф, пропорциональный квадрату величины весов.
🔷 L1-регуляризация может обнулять некоторые веса. L2-регуляризация обычно так не делает, но приближает веса к нулю, что уменьшает влияние отдельных признаков на результат.
#junior
#middle
👍8🔥1
Чем различаются стекинг (Stacking) и блендинг (Blending)?
▪️Стекинг — это способ построения ансамблей, при котором результаты базовых алгоритмов объединяются в один с помощью обучаемой мета-модели.
Например, мы делим тренировочную выборку на n частей (фолдов). Затем на каждом шаге мы обучаем базовые алгоритмы на n — 1 фолдах и используем последний оставшийся фолд для предсказания (вычисления мета-признаков). На полученных мета-признаках обучается мета-модель. Описанный нами метод похож на кросс-валидацию.
▪️Блендинг — упрощённый подход. Мы просто делим тренировочную выборку на две непересекающиеся части. На первой учим базовые алгоритмы, на второй — делаем предсказания и далее строим мета-модель.
#junior
#middle
#junior
#middle
👍8
Как определить процент объяснённой дисперсии при использовании метода главных компонент (PCA)?
При PCA происходит расчёт ковариационной матрицы, а также её собственных значений и собственных векторов. После их нахождения собственные значения сортируются по убыванию, и соответствующие им собственные векторы формируют матрицу главных компонент. Нас интересует процент дисперсии, которую объясняют эти компоненты.
▪️Сначала нужно вычислить общую дисперсию. Это сумма всех собственных значений.
▪️Процент объяснённой дисперсии для каждой компоненты рассчитывается как отношение собственного значения этой компоненты к полученной сумме. Затем результат умножается на 100, чтобы получить процент.
▪️Чтобы оценить объясняющий вклад k первых компонент, можно суммировать их индивидуальные проценты объяснённой дисперсии.
Также мы можем вычислить процент потерянной дисперсии, если просто вычтем из 100 процент объяснённой.
#middle
#senior
При PCA происходит расчёт ковариационной матрицы, а также её собственных значений и собственных векторов. После их нахождения собственные значения сортируются по убыванию, и соответствующие им собственные векторы формируют матрицу главных компонент. Нас интересует процент дисперсии, которую объясняют эти компоненты.
▪️Сначала нужно вычислить общую дисперсию. Это сумма всех собственных значений.
▪️Процент объяснённой дисперсии для каждой компоненты рассчитывается как отношение собственного значения этой компоненты к полученной сумме. Затем результат умножается на 100, чтобы получить процент.
▪️Чтобы оценить объясняющий вклад k первых компонент, можно суммировать их индивидуальные проценты объяснённой дисперсии.
Также мы можем вычислить процент потерянной дисперсии, если просто вычтем из 100 процент объяснённой.
#middle
#senior
🔥9
🔮Что такое проклятие размерности и как с ним справиться?
Проблема в том, что в высокоразмерных пространствах данные становятся очень разреженными. Вот пример:
🟣 Допустим, мы используем метод ближайших соседей для задачи классификации. Чтобы алгоритм хорошо работал, объекты должны быть расположены достаточно плотно в пространстве признаков. Так, в единичном интервале [0,1] ста равномерно разбросанных точек будет достаточно, чтобы покрыть этот интервал с частотой не менее 0.01. Однако если мы возьмём 10-мерный куб, то для той же степени покрытия потребуется уже 10^{20} точек.
Если данные будут сильно разбросаны в многомерном пространстве, то вероятность переобучения увеличивается. В общем, большое количество признаков требует всё более объёмных наборов данных.
Что можно с этим сделать:
✔️провести отбор признаков;
✔️снизить размерность данных с помощью метода главных компонент (PCA).
Проблема в том, что в высокоразмерных пространствах данные становятся очень разреженными. Вот пример:
🟣 Допустим, мы используем метод ближайших соседей для задачи классификации. Чтобы алгоритм хорошо работал, объекты должны быть расположены достаточно плотно в пространстве признаков. Так, в единичном интервале [0,1] ста равномерно разбросанных точек будет достаточно, чтобы покрыть этот интервал с частотой не менее 0.01. Однако если мы возьмём 10-мерный куб, то для той же степени покрытия потребуется уже 10^{20} точек.
Если данные будут сильно разбросаны в многомерном пространстве, то вероятность переобучения увеличивается. В общем, большое количество признаков требует всё более объёмных наборов данных.
Что можно с этим сделать:
✔️провести отбор признаков;
✔️снизить размерность данных с помощью метода главных компонент (PCA).
👍14
🧑💻 Решение задачи про поиск повторяющихся элементов в массиве
Задача: Дан массив с целыми числами длины n, все элементы которого лежат в диапазоне [1, n]. Каждый элемент появляется в массиве либо единожды, либо дважды. Требуется найти все числа, которые появляются дважды. Алгоритм должен работать за O(n).
Решение 1:
Довольно очевидный способ с использованием множеств. Создаём два множества, проходимся в цикле по массиву и проверяем, если элемент уже есть в первом множестве, то добавляем его в результирующее множество. Возвращаем результирующее множество.
Решение 2 (быстрее и использует меньше памяти):
Используем тот факт, что все числа массива находятся в диапазоне от 1 до n. Создаём результирующий список и идём в цикле по массиву. Вычисляем на основе каждого элемента index, а затем берём элемент массива по этому индексу. Если элемент по индексу неотрицательный, то заменяем его отрицательным. Если отрицательный, то добавляем изначальный элемент в результирующий список.
#junior
#middle
Задача: Дан массив с целыми числами длины n, все элементы которого лежат в диапазоне [1, n]. Каждый элемент появляется в массиве либо единожды, либо дважды. Требуется найти все числа, которые появляются дважды. Алгоритм должен работать за O(n).
Решение 1:
Довольно очевидный способ с использованием множеств. Создаём два множества, проходимся в цикле по массиву и проверяем, если элемент уже есть в первом множестве, то добавляем его в результирующее множество. Возвращаем результирующее множество.
Решение 2 (быстрее и использует меньше памяти):
Используем тот факт, что все числа массива находятся в диапазоне от 1 до n. Создаём результирующий список и идём в цикле по массиву. Вычисляем на основе каждого элемента index, а затем берём элемент массива по этому индексу. Если элемент по индексу неотрицательный, то заменяем его отрицательным. Если отрицательный, то добавляем изначальный элемент в результирующий список.
#junior
#middle
🔥7❤1