bootg.com »
United States »
Библиотека собеса по Data Science | вопросы с собеседований » Telegram Web
Какие существуют алгоритмы классификации?
✏️ Логистическая регрессия. Предсказывает, впрочем, не классы, а вещественные числа — логиты. Для них задаётся порог, который позволит относить объекты к определённому классу.
✏️ KNN (k-ближайших соседей). Определяет класс целевого объекта, исходя из того, какие классы у объектов, наиболее на него похожих.
✏️ SVM (метод опорных векторов). Строится гиперплоскость, разделяющая объекты оптимальным способом.
✏️ Дерево решений. Строится древовидная иерархическая структура для принятия решений на основе атрибутов объектов.
✏️ Случайный лес. Бэггинг над решающими деревьями, то есть использует множество деревьев для улучшения точности.
✏️ Градиентный бустинг. Модель строится путём последовательного улучшения слабых классификаторов.
✏️ Наивный байесовский классификатор. Вероятностный классификатор, основанный на применении теоремы Байеса.
✏️ Нейросети. Существует множество различных вариантов таких классификаторов.
✏️ Логистическая регрессия. Предсказывает, впрочем, не классы, а вещественные числа — логиты. Для них задаётся порог, который позволит относить объекты к определённому классу.
✏️ KNN (k-ближайших соседей). Определяет класс целевого объекта, исходя из того, какие классы у объектов, наиболее на него похожих.
✏️ SVM (метод опорных векторов). Строится гиперплоскость, разделяющая объекты оптимальным способом.
✏️ Дерево решений. Строится древовидная иерархическая структура для принятия решений на основе атрибутов объектов.
✏️ Случайный лес. Бэггинг над решающими деревьями, то есть использует множество деревьев для улучшения точности.
✏️ Градиентный бустинг. Модель строится путём последовательного улучшения слабых классификаторов.
✏️ Наивный байесовский классификатор. Вероятностный классификатор, основанный на применении теоремы Байеса.
✏️ Нейросети. Существует множество различных вариантов таких классификаторов.
Чем отличаются друг от друга XGBoost, CatBoost и LightGBM?
⚫ XGBoost (eXtreme Gradient Boosting):
- Строит деревья одинаковой конкретной глубины. Построение идёт послойно, а затем отсекаются листья.
- Имеет механизмы регуляризации, чтобы предотвращать переобучение.
⚫ CatBoost:
- Специализируется на работе с категориальными данными и не требует их предварительной обработки.
- Использует симметричные деревья, что делает процесс обучения быстрее.
⚫ LightGBM (Light Gradient Boosting Machine):
- Строит деревья, ориентируясь не на уровень, а на каждый конкретный лист. Добавляет лист, если разделение по нему даёт прирост в информации.
- Использует технику называемую Gradient-based One-Side Sampling (GOSS), которая уменьшает количество данных в процессе обучения. За счёт этого возрастает скорость.
- Есть механизм Exclusive Feature Bundling (EFB), который объединяет взаимоисключающие переменные в одну. Это тоже увеличивает скорость расчёта.
Для лучшего понимания можно посмотреть лекцию
⚫ XGBoost (eXtreme Gradient Boosting):
- Строит деревья одинаковой конкретной глубины. Построение идёт послойно, а затем отсекаются листья.
- Имеет механизмы регуляризации, чтобы предотвращать переобучение.
⚫ CatBoost:
- Специализируется на работе с категориальными данными и не требует их предварительной обработки.
- Использует симметричные деревья, что делает процесс обучения быстрее.
⚫ LightGBM (Light Gradient Boosting Machine):
- Строит деревья, ориентируясь не на уровень, а на каждый конкретный лист. Добавляет лист, если разделение по нему даёт прирост в информации.
- Использует технику называемую Gradient-based One-Side Sampling (GOSS), которая уменьшает количество данных в процессе обучения. За счёт этого возрастает скорость.
- Есть механизм Exclusive Feature Bundling (EFB), который объединяет взаимоисключающие переменные в одну. Это тоже увеличивает скорость расчёта.
Для лучшего понимания можно посмотреть лекцию
Как вы работали бы с несбалансированным набором данных?
В несбалансированном наборе данных объектов одного класса намного больше, чем объектов другого. Например, в датасете с транзакциями только 400 являются мошенническими, а 300 тысяч — нет. Из-за этого модель может хуже определять мошеннические транзакции.
Чтобы бороться с этим, используют несколько подходов:
🟡 Undersampling. Удаление некоторого количества примеров преобладающего класса.
🟡 Oversampling. Увеличение количества примеров класса, который находится в меньшинстве.
🟡 Комбинирование undersampling и oversampling.
🟡 Создание синтетических данных. Для этого можно использовать SMOTE (англ. Synthetic Minority Oversampling Technique). Алгоритм генерирует некоторое количество искусственных примеров, похожих на имеющиеся в меньшем классе.
Также можно применять взвешивание классов, при котором модель будет сильнее штрафовать за ошибки на меньшем классе. Кроме того, ансамблевые методы могут помочь уменьшить эффект несбалансированности.
В несбалансированном наборе данных объектов одного класса намного больше, чем объектов другого. Например, в датасете с транзакциями только 400 являются мошенническими, а 300 тысяч — нет. Из-за этого модель может хуже определять мошеннические транзакции.
Чтобы бороться с этим, используют несколько подходов:
🟡 Undersampling. Удаление некоторого количества примеров преобладающего класса.
🟡 Oversampling. Увеличение количества примеров класса, который находится в меньшинстве.
🟡 Комбинирование undersampling и oversampling.
🟡 Создание синтетических данных. Для этого можно использовать SMOTE (англ. Synthetic Minority Oversampling Technique). Алгоритм генерирует некоторое количество искусственных примеров, похожих на имеющиеся в меньшем классе.
Также можно применять взвешивание классов, при котором модель будет сильнее штрафовать за ошибки на меньшем классе. Кроме того, ансамблевые методы могут помочь уменьшить эффект несбалансированности.
Что такое p-value?
P-значение (p-value) указывает на вероятность получить в эксперименте такие или ещё более сильно выраженные различия абсолютно случайно. Например, у нас есть две выборки: одна со средним 20, другая — 18. Наша нулевая гипотеза состоит в том, что эти выборки взяты из одного и того же распределения. Мы вычисляем вероятность получить наблюдаемое отклонение от среднего, исходя из предположения, что нулевая гипотеза верна. Считается, что если полученная вероятность (p) < 0.05, то можно отклонять нулевую гипотезу и принимать альтернативную. Стоит отметить, что граница в 0.05 — это условность.
Важно понимать, что p-значение не говорит о величине эффекта или его практической значимости; оно только помогает определить статистическую значимость результатов.
P-значение (p-value) указывает на вероятность получить в эксперименте такие или ещё более сильно выраженные различия абсолютно случайно. Например, у нас есть две выборки: одна со средним 20, другая — 18. Наша нулевая гипотеза состоит в том, что эти выборки взяты из одного и того же распределения. Мы вычисляем вероятность получить наблюдаемое отклонение от среднего, исходя из предположения, что нулевая гипотеза верна. Считается, что если полученная вероятность (p) < 0.05, то можно отклонять нулевую гипотезу и принимать альтернативную. Стоит отметить, что граница в 0.05 — это условность.
Важно понимать, что p-значение не говорит о величине эффекта или его практической значимости; оно только помогает определить статистическую значимость результатов.
Какие методы оптимизации в машинном обучении вы знаете?
Оптимизация — это, в сущности, процесс настройки алгоритма таким образом, чтобы минимизировать или максимизировать определённую функцию потерь.
🟣 Градиентный спуск. Самый простой и известный метод. Параметры модели обновляются с помощью градиента, чтобы прийти к точке минимума. Градиент — это вектор, направление которого совпадает с направлением наискорейшего локального возрастания функции. Соответственно, нас интересует антиградиент, то есть направление наискорейшего локального убывания.
🟣 Стохастический градиентный спуск. Вариация метода выше. В этом случае мы подменяем вычисление градиента по всей выборке вычислением по случайной подвыборке. Это ускоряет процесс обучения.
🟣 Градиентный спуск с моментом. Ещё одна вариация. С математической точки зрения, мы добавляем к градиентному шагу ещё одно слагаемое, которое содержит информацию о предыдущих шагах.
🟣 Adagrad. Адаптация стохастического градиентного спуска. Алгоритм адаптирует размер шага для каждого параметра индивидуально, что позволяет более эффективно находить оптимум.
🟣 RMSprop. Метод, разработанный для решения проблемы быстрого уменьшения скорости обучения в Adagrad.
🟣 Adam (ADAptive Momentum). Объединяет в себе идеи градиентного спуска с моментом и RMSprop.
Оптимизация — это, в сущности, процесс настройки алгоритма таким образом, чтобы минимизировать или максимизировать определённую функцию потерь.
🟣 Градиентный спуск. Самый простой и известный метод. Параметры модели обновляются с помощью градиента, чтобы прийти к точке минимума. Градиент — это вектор, направление которого совпадает с направлением наискорейшего локального возрастания функции. Соответственно, нас интересует антиградиент, то есть направление наискорейшего локального убывания.
🟣 Стохастический градиентный спуск. Вариация метода выше. В этом случае мы подменяем вычисление градиента по всей выборке вычислением по случайной подвыборке. Это ускоряет процесс обучения.
🟣 Градиентный спуск с моментом. Ещё одна вариация. С математической точки зрения, мы добавляем к градиентному шагу ещё одно слагаемое, которое содержит информацию о предыдущих шагах.
🟣 Adagrad. Адаптация стохастического градиентного спуска. Алгоритм адаптирует размер шага для каждого параметра индивидуально, что позволяет более эффективно находить оптимум.
🟣 RMSprop. Метод, разработанный для решения проблемы быстрого уменьшения скорости обучения в Adagrad.
🟣 Adam (ADAptive Momentum). Объединяет в себе идеи градиентного спуска с моментом и RMSprop.
Чем различаются нейронная сеть с одним выходом и сигмоидальной функцией активации и такая же нейронная сеть, но с двумя выходами и softmax?
Основное различие кроется в применении.
▪️ Сигмоидальная функция преобразует любое входное значение в значение от 0 до 1. Это часто используется для задач бинарной классификации, где выход можно интерпретировать как вероятность принадлежности к одному из двух классов.
▪️ Softmax преобразует входные сигналы в набор чисел, которые в сумме дают 1. Может применяться в задачах многоклассовой классификации, где каждый выход представляет некоторую степень уверенности в том, что объект принадлежит к одному из классов.
Так, сеть с сигмоидальной функцией и одним выходом может подойти для задач, где нужно определить, принадлежит ли объект к определённому классу или нет («красный»/«не красный»).
Сеть с softmax и двумя выходами лучше подходит для ситуаций, где необходимо сделать выбор между двумя взаимоисключающими классами («красный»/«чёрный») или для задач многоклассовой классификации, где каждый класс представлен отдельным выходом.
Основное различие кроется в применении.
▪️ Сигмоидальная функция преобразует любое входное значение в значение от 0 до 1. Это часто используется для задач бинарной классификации, где выход можно интерпретировать как вероятность принадлежности к одному из двух классов.
▪️ Softmax преобразует входные сигналы в набор чисел, которые в сумме дают 1. Может применяться в задачах многоклассовой классификации, где каждый выход представляет некоторую степень уверенности в том, что объект принадлежит к одному из классов.
Так, сеть с сигмоидальной функцией и одним выходом может подойти для задач, где нужно определить, принадлежит ли объект к определённому классу или нет («красный»/«не красный»).
Сеть с softmax и двумя выходами лучше подходит для ситуаций, где необходимо сделать выбор между двумя взаимоисключающими классами («красный»/«чёрный») или для задач многоклассовой классификации, где каждый класс представлен отдельным выходом.
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.
В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги
👉Подписаться👈
В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги
👉Подписаться👈
🤖 Как бы вы объяснили обучение с подкреплением (reinforcement learning)?
Этот метод моделирует обучение методом проб и ошибок. Вместо обучающей выборки алгоритм взаимодействует с некоторой средой (environment), а в роли «разметки» выступают награда (reward) или штраф (penalty). Это некоторые скалярные величины, которая выдаются после каждого шага взаимодействия со средой. Они показывают, насколько хорошо алгоритм справляется с задачей. По традиции, субъект, который взаимодействует со средой, называется в reinforcement learning агентом (agent).
Цель обучения с подкреплением — найти оптимальную стратегию, которая максимизирует совокупное вознаграждение, получаемое агентом с течением времени.
Этот метод моделирует обучение методом проб и ошибок. Вместо обучающей выборки алгоритм взаимодействует с некоторой средой (environment), а в роли «разметки» выступают награда (reward) или штраф (penalty). Это некоторые скалярные величины, которая выдаются после каждого шага взаимодействия со средой. Они показывают, насколько хорошо алгоритм справляется с задачей. По традиции, субъект, который взаимодействует со средой, называется в reinforcement learning агентом (agent).
Цель обучения с подкреплением — найти оптимальную стратегию, которая максимизирует совокупное вознаграждение, получаемое агентом с течением времени.
Какие метрики регрессии вы знаете?
🔹 MSE (Mean squared error), среднеквадратическая ошибка. Одна из самых популярных метрик в задаче регрессии. Также применяется в качестве функции потерь. Это среднее квадратов разностей между предсказанными и фактическими значениями.
🔹 MAE (Mean absolute error), средняя абсолютная ошибка. Это среднее абсолютных разностей между предсказанными и фактическими значениями.
🔹 MAPE (Mean absolute percentage error), cредняя абсолютная ошибка в процентах. Тут в знаменатель формулы, как у MAE, добавляют само целевое значение. Получается относительная метрика.
🔹 SMAPE (symmetric mean absolute percentage error). Вариация MAPE, которая позволяет обрабатывать случаи, если в знаменателе оказывается 0.
🔹 WAPE (weighted average percentage error). Ещё одна вариация MAPE, рекомендуется к использованию при расчёте точности прогнозирования.
🔹 RMSLE (root mean squared logarithmic error). Здесь добавляем в формулу логарифмы и некую нормировочную константу. Это ещё один способ перейти от абсолютных ошибок к относительным.
🔹 MSE (Mean squared error), среднеквадратическая ошибка. Одна из самых популярных метрик в задаче регрессии. Также применяется в качестве функции потерь. Это среднее квадратов разностей между предсказанными и фактическими значениями.
🔹 MAE (Mean absolute error), средняя абсолютная ошибка. Это среднее абсолютных разностей между предсказанными и фактическими значениями.
🔹 MAPE (Mean absolute percentage error), cредняя абсолютная ошибка в процентах. Тут в знаменатель формулы, как у MAE, добавляют само целевое значение. Получается относительная метрика.
🔹 SMAPE (symmetric mean absolute percentage error). Вариация MAPE, которая позволяет обрабатывать случаи, если в знаменателе оказывается 0.
🔹 WAPE (weighted average percentage error). Ещё одна вариация MAPE, рекомендуется к использованию при расчёте точности прогнозирования.
🔹 RMSLE (root mean squared logarithmic error). Здесь добавляем в формулу логарифмы и некую нормировочную константу. Это ещё один способ перейти от абсолютных ошибок к относительным.
Какие метрики классификации вы знаете?
🔸 Accuracy (иногда, «точность»). Это доля объектов, для которых модель правильно предсказала класс. Есть обратная ей метрика — доля ошибочных классификаций (error rate). Считается как 1 — accuracy.
🔸 Precision (тоже переводят как «точность»). Это доля правильно предсказанных положительных объектов среди всех объектов, которые модель сочла положительным классом.
🔸 Recall («полнота»). Доля правильно предсказанных положительных объектов среди всех настоящих объектов положительного класса.
🔸 F1-мера. Это среднее гармоническое пары Precision-Recall.
🔸 AUC (Area Under Curve). Чем лучше классификатор разделяет два класса, тем больше площадь под кривой (её ещё называют ROC-кривой). Эта метрика показывает соотношение между долей истинно положительных результатов и долей ложноположительных результатов при разных порогах классификации.
🔸 Accuracy (иногда, «точность»). Это доля объектов, для которых модель правильно предсказала класс. Есть обратная ей метрика — доля ошибочных классификаций (error rate). Считается как 1 — accuracy.
🔸 Precision (тоже переводят как «точность»). Это доля правильно предсказанных положительных объектов среди всех объектов, которые модель сочла положительным классом.
🔸 Recall («полнота»). Доля правильно предсказанных положительных объектов среди всех настоящих объектов положительного класса.
🔸 F1-мера. Это среднее гармоническое пары Precision-Recall.
🔸 AUC (Area Under Curve). Чем лучше классификатор разделяет два класса, тем больше площадь под кривой (её ещё называют ROC-кривой). Эта метрика показывает соотношение между долей истинно положительных результатов и долей ложноположительных результатов при разных порогах классификации.
Какие основные рекомендательные модели вы знаете?
👤 Коллаборативная фильтрация. Метод строит рекомендации для пользователя, используя известные предпочтения (чаще всего оценки) других пользователей. То есть отталкиваемся от идеи, что похожим пользователям нравятся похожие объекты.
- User-based и item-based алгоритмы:
В первом случае строим предположение, что объект понравится пользователю, если он понравился похожим пользователям. Во втором случае предполагаем, что объект понравится пользователю, если ему понравились похожие объекты.
👤 Алгоритм SVD (сингулярное разложение). Делаем разложение матрицы оценок. Помимо предсказания оценок, алгоритм позволяет выявить скрытые признаки объектов и интересы пользователей.
👤 Коллаборативная фильтрация. Метод строит рекомендации для пользователя, используя известные предпочтения (чаще всего оценки) других пользователей. То есть отталкиваемся от идеи, что похожим пользователям нравятся похожие объекты.
- User-based и item-based алгоритмы:
В первом случае строим предположение, что объект понравится пользователю, если он понравился похожим пользователям. Во втором случае предполагаем, что объект понравится пользователю, если ему понравились похожие объекты.
👤 Алгоритм SVD (сингулярное разложение). Делаем разложение матрицы оценок. Помимо предсказания оценок, алгоритм позволяет выявить скрытые признаки объектов и интересы пользователей.
Как вы бы проверили вес каждого признака в дереве решений?
Если вы строили дерево решений с помощью библиотеки scikit-learn, то можно использовать атрибут feature_importances_. Он возвращает вектор «важностей» признаков. Индекс элемента в векторе соответствует индексу признака в данных. Эти «важности» вычисляются на базе того, как признак уменьшает меру неопределённости в каждом дереве.
Forwarded from Библиотека data scientist’а | Data Science, Machine learning, анализ данных, машинное обучение
🔈16+ лучших нейронок для синтеза речи
Предлагаем подборку платных, бесплатных и опенсорсных инструментов для озвучивания текста, клонирования голоса и дублированного перевода подкастов и видео.
Читать статью
Предлагаем подборку платных, бесплатных и опенсорсных инструментов для озвучивания текста, клонирования голоса и дублированного перевода подкастов и видео.
Читать статью
Вопросы для собеседований на какой грейд вы хотели бы видеть чаще?
Anonymous Poll
56%
junior
44%
middle
22%
senior