🚀 Реализуйте Non-Maximum Suppression (NMS) максимально эффективно
NMS — это техника, используемая для устранения нескольких детекций одного и того же объекта на изображении.
1. Чтобы решить эту задачу, нужно сначала отсортировать детекции по их оценкам (O(N log N)). 2. Начинаем с детекции с наивысшей оценкой и удаляем те детекции, чье перекрытие (метрика IoU) с текущей детекцией больше заданного порога (O(N^2)).
⚙️ Для оптимизации этого решения можно использовать специальные структуры данных, такие как R-дерево или KD-дерево, для быстрого поиска пересекающихся детекций (O(N log N)).
NMS — это техника, используемая для устранения нескольких детекций одного и того же объекта на изображении.
1. Чтобы решить эту задачу, нужно сначала отсортировать детекции по их оценкам (O(N log N)). 2. Начинаем с детекции с наивысшей оценкой и удаляем те детекции, чье перекрытие (метрика IoU) с текущей детекцией больше заданного порога (O(N^2)).
⚙️ Для оптимизации этого решения можно использовать специальные структуры данных, такие как R-дерево или KD-дерево, для быстрого поиска пересекающихся детекций (O(N log N)).
👍2
Что такое методы выбора признаков и какие они бывают
Существует два основных метода для выбора признаков: фильтровые и обертки.
1. Фильтровые методы:
🔹 Линейный дискриминантный анализ (LDA)
🔹 ANOVA (дисперсионный анализ)
🔹 Хи-квадрат
Эти методы направлены на выбор признаков на основе статистических тестов, таких как анализ различий между группами данных.
2. Методы обертки:
🔸 Прямой отбор (Forward Selection): тестируем каждый признак по очереди и добавляем их до тех пор, пока не получим хорошую модель.
🔸 Обратный отбор (Backward Selection): начинаем с всех признаков и последовательно исключаем их, чтобы найти оптимальный набор.
🔸 Рекурсивное исключение признаков (Recursive Feature Elimination): анализирует взаимодействие признаков и исключает наименее важные.
Методы обертки требуют больше вычислительных ресурсов, так как они предполагают многократные прогоны модели с разными наборами признаков.
Существует два основных метода для выбора признаков: фильтровые и обертки.
1. Фильтровые методы:
🔹 Линейный дискриминантный анализ (LDA)
🔹 ANOVA (дисперсионный анализ)
🔹 Хи-квадрат
Эти методы направлены на выбор признаков на основе статистических тестов, таких как анализ различий между группами данных.
2. Методы обертки:
🔸 Прямой отбор (Forward Selection): тестируем каждый признак по очереди и добавляем их до тех пор, пока не получим хорошую модель.
🔸 Обратный отбор (Backward Selection): начинаем с всех признаков и последовательно исключаем их, чтобы найти оптимальный набор.
🔸 Рекурсивное исключение признаков (Recursive Feature Elimination): анализирует взаимодействие признаков и исключает наименее важные.
Методы обертки требуют больше вычислительных ресурсов, так как они предполагают многократные прогоны модели с разными наборами признаков.
👍4
Forwarded from Proglib.academy | IT-курсы
Рассказываем об основных терминах, методах и инструментах, которые используются при анализе больших данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Как можно объявить временной ряд стационарным
Временной ряд считается стационарным, когда его дисперсия и среднее значение остаются постоянными во времени.
📈 Пример визуализации:
1️⃣ На первом графике дисперсия постоянна во времени. X — это временной фактор, а Y — переменная. Значение Y проходит через одни и те же точки на графике, что означает, что ряд стационарен.
2️⃣ Графики 2-4 отображают нестационарные ряды. Наблюдается либо возрастающая амплитуда колебаний (дисперсия), либо явный тренд.
📉 Вывод
Если дисперсия и среднее значение остаются стабильными, то временной ряд стационарен. Если они изменяются, то ряд нестационарен.
Временной ряд считается стационарным, когда его дисперсия и среднее значение остаются постоянными во времени.
📈 Пример визуализации:
1️⃣ На первом графике дисперсия постоянна во времени. X — это временной фактор, а Y — переменная. Значение Y проходит через одни и те же точки на графике, что означает, что ряд стационарен.
2️⃣ Графики 2-4 отображают нестационарные ряды. Наблюдается либо возрастающая амплитуда колебаний (дисперсия), либо явный тренд.
📉 Вывод
Если дисперсия и среднее значение остаются стабильными, то временной ряд стационарен. Если они изменяются, то ряд нестационарен.
👍6❤1
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
📊 Параметрические и непараметрические модели: в чем разница
🔗 Параметрические модели предполагают заранее заданную форму зависимости между входными и выходными данными. Это упрощает процесс обучения, но ограничивает гибкость модели.
🤖 Непараметрические модели, напротив, не предполагают фиксированной формы зависимости и могут адаптироваться к большему количеству шаблонов в данных. Это делает их более гибкими, но требует большего количества данных для точных прогнозов.
Параметрические модели подходят для задач, где важна скорость обучения, а непараметрические лучше работают с более сложными и разнообразными данными.
🔗 Параметрические модели предполагают заранее заданную форму зависимости между входными и выходными данными. Это упрощает процесс обучения, но ограничивает гибкость модели.
🤖 Непараметрические модели, напротив, не предполагают фиксированной формы зависимости и могут адаптироваться к большему количеству шаблонов в данных. Это делает их более гибкими, но требует большего количества данных для точных прогнозов.
Параметрические модели подходят для задач, где важна скорость обучения, а непараметрические лучше работают с более сложными и разнообразными данными.
❤6
⤵️ Чем отличается метод градиентного спуска от стохастического градиентного спуска?
▪️ Метод градиентного спуска (Gradient Descent) — это оптимизационный алгоритм, который используется для минимизации функции потерь, обновляя параметры модели в направлении отрицательного градиента функции потерь. В каждом шаге используется весь обучающий набор данных для вычисления градиента.
▪️ Стохастический градиентный спуск (SGD) — это модификация, в которой градиент вычисляется только по одному случайно выбранному примеру данных на каждом шаге. Это делает процесс обучения быстрее, но более шумным.
Основное различие: градиентный спуск использует все данные, что делает его более точным, но медленным, а стохастический градиентный спуск быстрее, но может колебаться вокруг минимума из-за случайных обновлений.
▪️ Метод градиентного спуска (Gradient Descent) — это оптимизационный алгоритм, который используется для минимизации функции потерь, обновляя параметры модели в направлении отрицательного градиента функции потерь. В каждом шаге используется весь обучающий набор данных для вычисления градиента.
▪️ Стохастический градиентный спуск (SGD) — это модификация, в которой градиент вычисляется только по одному случайно выбранному примеру данных на каждом шаге. Это делает процесс обучения быстрее, но более шумным.
Основное различие: градиентный спуск использует все данные, что делает его более точным, но медленным, а стохастический градиентный спуск быстрее, но может колебаться вокруг минимума из-за случайных обновлений.
👍5❤2
📍 Объясните разницу между параметрами модели и гиперпараметрами
🔸 Параметры модели
Автоматически настраиваются: Параметры модели определяются в процессе обучения на основе данных.
Внутреннее состояние модели: Они представляют собой внутреннее состояние модели, которое позволяет ей делать прогнозы.
Примеры: веса в нейронных сетях, коэффициенты линейной регрессии, опорные векторы в SVM.
🔸 Гиперпараметры
Задаются вручную: Гиперпараметры устанавливаются до начала обучения и влияют на процесс обучения.
Контроль обучения: Они определяют, как модель будет обучаться, а не то, что она будет предсказывать.
Примеры: скорость обучения в нейронных сетях, количество соседей в KNN, параметры ядра в SVM.
🔸 Параметры модели
Автоматически настраиваются: Параметры модели определяются в процессе обучения на основе данных.
Внутреннее состояние модели: Они представляют собой внутреннее состояние модели, которое позволяет ей делать прогнозы.
Примеры: веса в нейронных сетях, коэффициенты линейной регрессии, опорные векторы в SVM.
🔸 Гиперпараметры
Задаются вручную: Гиперпараметры устанавливаются до начала обучения и влияют на процесс обучения.
Контроль обучения: Они определяют, как модель будет обучаться, а не то, что она будет предсказывать.
Примеры: скорость обучения в нейронных сетях, количество соседей в KNN, параметры ядра в SVM.
❤🔥3🔥2
👀 Что такое эффект мультиколлинеарности и как он может повлиять на модель линейной регрессии?
Мультиколлинеарность — это ситуация, когда два или более признака в модели линейной регрессии сильно коррелируют между собой. Это затрудняет оценку их индивидуального влияния на зависимую переменную, поскольку изменения в одном признаке могут быть связаны с изменениями в другом.
В результате мультиколлинеарности коэффициенты модели могут быть нестабильными и иметь большие стандартные ошибки, что снижает точность прогнозов и интерпретацию модели.
✅ Чтобы избежать этого, можно использовать методы, такие как удаление коррелирующих признаков, регуляризация (Lasso, Ridge) или главные компоненты (PCA) для уменьшения корреляции между признаками.
Мультиколлинеарность — это ситуация, когда два или более признака в модели линейной регрессии сильно коррелируют между собой. Это затрудняет оценку их индивидуального влияния на зависимую переменную, поскольку изменения в одном признаке могут быть связаны с изменениями в другом.
В результате мультиколлинеарности коэффициенты модели могут быть нестабильными и иметь большие стандартные ошибки, что снижает точность прогнозов и интерпретацию модели.
✅ Чтобы избежать этого, можно использовать методы, такие как удаление коррелирующих признаков, регуляризация (Lasso, Ridge) или главные компоненты (PCA) для уменьшения корреляции между признаками.
👍7❤2
Модель показывает высокое качество на тесте, но проваливается в реальном мире. Какие шаги помогут исправить ситуацию?
✅ Сравнение распределений данных: анализируется различие между данными обучения и реальными данными для выявления distribution shift. Это помогает понять, видела ли модель похожие примеры.
✅ Анализ feature importance: определяется, какие признаки модель считает важными. Возможно, модель излишне полагается на шумовые или незначимые признаки, отсутствующие в реальных данных.
✅ Сбор реальных данных: организуется процесс сбора данных из продакшена для дообучения модели, чтобы учесть новые паттерны.
✅ Сравнение распределений данных: анализируется различие между данными обучения и реальными данными для выявления distribution shift. Это помогает понять, видела ли модель похожие примеры.
✅ Анализ feature importance: определяется, какие признаки модель считает важными. Возможно, модель излишне полагается на шумовые или незначимые признаки, отсутствующие в реальных данных.
✅ Сбор реальных данных: организуется процесс сбора данных из продакшена для дообучения модели, чтобы учесть новые паттерны.
👍7❤1
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
💡 Как получить от нейросети код, работающий в 100 раз быстрее
Интересный эксперимент провели с Claude 3.5 Sonnet: попытались улучшить простой алгоритм на Python, раз за разом прося ИИ «написать код лучше». Задача была несложная — найти разницу между максимальным и минимальным числами в массиве, сумма цифр которых равна 30.
Казалось бы, что тут можно улучшать?
👉 Подробнее в нашей статье
#CodeOptimization
Интересный эксперимент провели с Claude 3.5 Sonnet: попытались улучшить простой алгоритм на Python, раз за разом прося ИИ «написать код лучше». Задача была несложная — найти разницу между максимальным и минимальным числами в массиве, сумма цифр которых равна 30.
Казалось бы, что тут можно улучшать?
👉 Подробнее в нашей статье
#CodeOptimization
❤1🔥1
Forwarded from Proglib.academy | IT-курсы
🤖 📈 Data Science в 2025 году: 7 главных трендов
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
➡️ В статье:
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
🔵 Тренды меняются, но основы остаются — укрепи базу с нашим курсом «Математика для Data Science»
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2❤1
Разница между символическим и коннекционистским ИИ
Разница между символическим и коннекционистским ИИ заключается в подходах к обработке информации.
📍 Символический ИИ работает на основе чётко заданных правил и логики, где информация представляется в виде символов, связанных между собой через логические операции. Этот подход используется в экспертных системах и решении задач, где важна строгая последовательность шагов.
📍 Коннекционистский ИИ (нейросети) учится на данных, выявляя паттерны и закономерности без явных заранее заданных правил. Он адаптируется через обучение, что делает его подходящим для задач, таких как распознавание изображений, речи и классификация.
В современных системах часто используется комбинация обоих подходов для достижения лучших результатов.
Разница между символическим и коннекционистским ИИ заключается в подходах к обработке информации.
📍 Символический ИИ работает на основе чётко заданных правил и логики, где информация представляется в виде символов, связанных между собой через логические операции. Этот подход используется в экспертных системах и решении задач, где важна строгая последовательность шагов.
📍 Коннекционистский ИИ (нейросети) учится на данных, выявляя паттерны и закономерности без явных заранее заданных правил. Он адаптируется через обучение, что делает его подходящим для задач, таких как распознавание изображений, речи и классификация.
В современных системах часто используется комбинация обоих подходов для достижения лучших результатов.
❤2
⚖️ Какова цель масштабирования признаков (feature scaling) в машинном обучении
Цель масштабирования признаков — привести значения всех признаков к единому масштабу.
Это особенно важно для алгоритмов, чувствительных к величине признаков, таких как модели, основанные на градиентном спуске (например, логистическая регрессия) или на расстояниях (k-ближайших соседей, SVM).
Масштабирование улучшает производительность модели и ускоряет её обучение, предотвращая ситуацию, когда признаки с большими значениями доминируют над другими.
Цель масштабирования признаков — привести значения всех признаков к единому масштабу.
Это особенно важно для алгоритмов, чувствительных к величине признаков, таких как модели, основанные на градиентном спуске (например, логистическая регрессия) или на расстояниях (k-ближайших соседей, SVM).
Масштабирование улучшает производительность модели и ускоряет её обучение, предотвращая ситуацию, когда признаки с большими значениями доминируют над другими.
👍4❤2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Почему CNN, обученная на ImageNet, считается отличным выбором в качестве базовой модели
Существует две основные причины:
✅ Огромное количество изображений в наборе данных ImageNet обеспечивает генерализацию модели CNN для других доменов, таких как гистопатология, которая значительно отличается от исходного домена, на котором модель была изначально обучена (например, изображения кошек и собак).
✅ Обученная на ImageNet CNN создает массив разнообразных визуальных паттернов, так как этот набор данных включает 1 000 различных категорий.
Существует две основные причины:
✅ Огромное количество изображений в наборе данных ImageNet обеспечивает генерализацию модели CNN для других доменов, таких как гистопатология, которая значительно отличается от исходного домена, на котором модель была изначально обучена (например, изображения кошек и собак).
✅ Обученная на ImageNet CNN создает массив разнообразных визуальных паттернов, так как этот набор данных включает 1 000 различных категорий.
👍2❤1
Ответ: Верно.
Метод bagging (Bootstrap Aggregating) предполагает случайный выбор K объектов из исходного обучающего набора с заменой, где K равно размеру исходного набора данных.
Это означает, что одни экземпляры могут встречаться несколько раз, а другие могут не попасть в выборку вовсе.
Такой подход позволяет создать несколько различных обучающих подмножеств, что снижает дисперсию модели и повышает её устойчивость.
❤6🔥4
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🗺️ Как стать ИИ-разработчиком в 2025 году: дорожная карта и ресурсы
В 2025 году профессия ИИ-разработчика остается одной из самых востребованных и перспективных.
👀 Как начать свой путь в этой увлекательной, но сложной области?
Мы собрали подробную дорожную карту и полезные ресурсы, которые помогут вам шаг за шагом освоить ключевые навыки и технологии.
В 2025 году профессия ИИ-разработчика остается одной из самых востребованных и перспективных.
👀 Как начать свой путь в этой увлекательной, но сложной области?
Мы собрали подробную дорожную карту и полезные ресурсы, которые помогут вам шаг за шагом освоить ключевые навыки и технологии.
👀 Какие три наиболее часто используемые меры для оптимального разбиения атрибутов в дереве решений
1. Энтропия: позволяет измерить степень неопределённости или «разнородности» данных.
2. Индекс Джини (Gini impurity): оценивает вероятность того, что случайно выбранный элемент будет классифицирован неправильно.
3. Ошибка классификации: простая метрика, показывающая долю неверных классификаций в узле.
Какой метод выбрать
✅ Энтропия и индекс Gini чаще используются, так как они чувствительнее к изменениям в распределении данных.
✅ Ошибка классификации проще, но менее информативна для построения дерева решений.
1. Энтропия: позволяет измерить степень неопределённости или «разнородности» данных.
2. Индекс Джини (Gini impurity): оценивает вероятность того, что случайно выбранный элемент будет классифицирован неправильно.
3. Ошибка классификации: простая метрика, показывающая долю неверных классификаций в узле.
Какой метод выбрать
✅ Энтропия и индекс Gini чаще используются, так как они чувствительнее к изменениям в распределении данных.
✅ Ошибка классификации проще, но менее информативна для построения дерева решений.
❤3👍1