Telegram Web Link
Знаете ли вы про PR-кривую? Где она применяется?

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

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

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

#junior
#middle
Как проводится кросс-валидация?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#middle
Как провести валидацию временного ряда?

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

✔️Можно рассказать про кросс-валидацию на временных рядах. В этой процедуре мы используем тестовые множества, состоящие из одного-единственного наблюдения. Соответствующие им тренировочные множества состоят только из наблюдений, возникающих перед тестовым наблюдением. Никакие наблюдения «из будущего» тут применяться не могут. На диаграмме сверху синие точки — это наблюдения из тренировочного множества, а красные — из тестового.

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

#middle
Знаете ли вы про функцию Softmax? Как она используется в машинном обучении?

Функция Softmax преобразует вектор вещественных чисел (часто называемых логитами) в вектор вероятностей. Каждое число в выходном векторе представляет вероятность принадлежности объекта к соответствующему классу. Сумма всех получившихся вероятностей в выходном векторе равна единице.

В формуле Softmax параметр n — это количество классов.

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

#junior
#middle
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
Что вы знаете про обучение ассоциативным правилам? Что такое поддержка, достоверность и лифт?

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

Поддержка, достоверность и лифт — это основные меры для определения
ассоциаций.
🔸Поддержка — показывает, как часто появляется конкретный товарный набор.
🔸Достоверность — показывает, как часто товар Y появляется вместе с товаром X.
🔸Лифт — показывает, как часто товары X и Y появляются вместе, одновременно учитывая, с какой частотой появляется каждый из них.

#junior
#middle
Что такое Transfer Learning?

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

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

#junior
#middle
Опишите архитектуру обычной свёрточной нейронной сети.

В типичной архитектуре свёрточной нейронной сети (CNN) есть несколько слоёв свёртки. За каждым из них следует слой с функцией активации (например, ReLU), затем идёт слой пулинга.

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

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

#junior
#middle
Что вы знаете про параметрические и непараметрические модели в машинном обучении?

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

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

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

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

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

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

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

✔️Иногда объекты с пропущенными значениями можно просто выбросить.
✔️Вместо NaN иногда можно поставить нулевое значение или любое другое выбранное число.
✔️Можно заменить пропуски на среднее значение, медиану или моду.
✔️Можно провести множественную импутацию данных (MICE). В это случае восстановление каждого значения проводится не один раз, а много. В целом, метод прогнозирует пропущенные значения на основе доступных значений переменной, в которой мы заполняем пропуски, и других переменных.
✔️Также есть импутация данных с помощью глубоко обучения. Обучение нейросети на части данных без пропусков позволяет восстанавливать недостающие значения.

#junior
Что может случиться, если в стохастическом градиентном спуске (SGD) установить гиперпараметр momentum близким к единице (например, 0.9999)?

В этом случае алгоритм, скорее всего, значительно наберёт скорость, приближаясь к глобальному минимуму (в лучшем случае), но импульс заставит его «перескочить» минимум. Затем он замедлится и вернётся назад, снова ускорится, снова «проскочит» и это будет повторяться опять и опять. Поэтому, в целом, чтобы сойтись, алгоритму потребуется гораздо больше времени, чем с меньшим значением momentum.

#junior
#middle
В чём разница между методами apply и applymap в Pandas?

Оба метода принимают функции на вход, но работают с ними по-разному. Метод applymap применяет функцию к каждому отдельному элементу DataFrame. В то же время apply применяется к целым строкам или столбцам DataFrame.

Если говорить о реальном применении методов, то applymap используется для трансформации датафреймов, а apply — для более сложных операций и агрегирования. Applymap возвращает датафрейм. Apply же может вернуть скалярное значение, серию или датафрейм.

Начиная с версии Pandas 2.1.0 метод DataFrame.applymap считается устаревшим и был переименован в DataFrame.map.
2024/09/30 22:24:48
Back to Top
HTML Embed Code: