Инструменты

Подготовка к собеседованию по ML: ответы на основные вопросы

Какие популярные модели Classic ML ты знаешь?

Классическое машинное обучение включает в себя различные модели, которые могут быть разделены на две основные категории: обучение с учителем (Supervised Learning) и обучение без учителя (Unsupervised Learning). Давайте рассмотрим некоторые из популярных моделей в каждой из этих категорий.

Обучение с учителем (Supervised Learning):

  1. Линейная регрессия (Linear Regression): Модель, используемая для предсказания значения непрерывной зависимой переменной на основе одной или нескольких независимых переменных.
  2. Логистическая регрессия (Logistic Regression): Хотя название содержит “регрессию”, это на самом деле модель для бинарной классификации, предсказывающая вероятность принадлежности к одному из двух классов.
  3. Метод k ближайших соседей (k-Nearest Neighbors, k-NN): Основан на принципе, что объекты, близкие друг к другу в пространстве признаков, склонны принадлежать к одному и тому же классу.
  4. Метод опорных векторов (Support Vector Machines, SVM): Используется для классификации и регрессии. Стремится построить гиперплоскость в пространстве признаков, максимально разделяющую объекты разных классов.
  5. Деревья решений (Decision Trees): Структура в виде дерева, где каждый узел представляет тест на признаке, каждая ветвь представляет результат теста, а каждый лист представляет прогноз.
  6. Случайный лес (Random Forest): Ансамбль деревьев решений, где каждое дерево обучается на случайной подвыборке данных, и результат усредняется или принимается голосованием.
  7. Градиентный бустинг (Gradient Boosting): Ансамбль, где модели строятся последовательно, каждая исправляя ошибки предыдущей. Примеры включают XGBoost, LightGBM, и CatBoost.

Обучение без учителя (Unsupervised Learning):

  1. K-средних (k-Means): Алгоритм кластеризации, разбивающий данные на k кластеров на основе их признаков.
  2. Метод главных компонент (Principal Component Analysis, PCA): Используется для уменьшения размерности данных, сохраняя при этом как можно больше их изменчивости.
  3. Алгоритмы иерархической кластеризации (Hierarchical Clustering): Строят иерархию кластеров, представляя данные в виде дерева.
  4. Автоэнкодеры (Autoencoders): Нейронные сети, используемые для уменьшения размерности данных и извлечения значимых признаков.
  5. Метод t-распределения Стьюдента (t-Distributed Stochastic Neighbor Embedding, t-SNE): Используется для визуализации высокоразмерных данных в двух или трех измерениях.
  6. Алгоритмы ассоциативного анализа (Association Rule Learning): Используются для выявления интересных отношений между переменными в больших наборах данных.

Какие метрики используются в ML для оценки производительности моделей?

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

Метрики классификации:

  1. Accuracy (Точность): Доля правильных предсказаний по отношению ко всем предсказаниям.$$ \text{Accuracy} = \frac{\text{Количество правильных предсказаний}}{\text{Общее количество предсказаний}} $$
  2. Precision (Точность): Доля правильных положительных предсказаний среди всех положительных предсказаний. $$\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}$$ где:
    TP – количество истинных положительных предсказаний, 
    FP – количество ложных положительных предсказаний.
  3. Recall (Полнота): Доля правильных положительных предсказаний среди всех реальных положительных случаев.$$\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}$$где:
    TP – количество истинных положительных предсказаний, 
    FN – количество ложных отрицательных предсказаний.
  4. F1 Score: Среднее гармоническое между Precision и Recall. $$\text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$$
  5. ROC-AUC (Площадь под ROC-кривой): Площадь под кривой, показывающей зависимость между True Positive Rate (TPR) и False Positive Rate (FPR) при изменении порога классификации.
  6. Log Loss (Логарифмическая потеря): Мера, используемая в задачах вероятностной классификации, оценивающая среднюю логарифмическую ошибку между предсказанными вероятностями классов и истинными метками.

Метрики регрессии:

  1. Mean Absolute Error (MAE, Средняя абсолютная ошибка): Средняя абсолютная разница между предсказанными и фактическими значениями.$$ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i – \hat{y}_i|$$
  2. Mean Squared Error (MSE, Средняя квадратичная ошибка): Средняя квадратичная разница между предсказанными и фактическими значениями.$$\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i – \hat{y}_i)^2$$
  3. Root Mean Squared Error (RMSE, Корень из средней квадратичной ошибки): Квадратный корень из MSE.$$\text{RMSE} = \sqrt{\text{MSE}}$$
  4. R^2 Score (Коэффициент детерминации): Мера, измеряющая, насколько хорошо модель соответствует вариации в данных. Принимает значения от 0 до 1, где 1 означает идеальное предсказание.

Метрики кластеризации:

  1. Adjusted Rand Index (ARI): Мера схожести между фактическими и предсказанными кластерами, учитывающая случайные совпадения.
  2. Silhouette Score (Коэффициент силуэта): Мера, оценивающая насколько объекты внутри кластеров похожи друг на друга и насколько различны между кластерами.

Это лишь несколько примеров метрик, и выбор конкретной метрики зависит от типа задачи и свойств данных.

Как строится ROC-AUC?

Характеристика кривой ROC-AUC (Receiver Operating Characteristic – Area Under the Curve) используется для оценки качества бинарной классификации моделей машинного обучения. ROC-AUC измеряет площадь под кривой ROC (Receiver Operating Characteristic), которая отображает зависимость между чувствительностью (вероятность правильного обнаружения положительного класса) и специфичностью (вероятность правильного обнаружения отрицательного класса) при изменении порога классификации.

Вот как строится кривая ROC-AUC:

  1. Получение скоров модели: Сначала необходимо получить предсказанные значения или “скоры” от вашей модели для тестового набора данных.
  2. Вычисление TPR и FPR: Порог классификации изменяется от минимального до максимального значения скоров. Для каждого порога вычисляются две метрики: чувствительность (True Positive Rate – TPR) и ложная положительная частота (False Positive Rate – FPR).
    • TPR (чувствительность): Доля правильно предсказанных положительных случаев относительно общего числа положительных случаев в данных. $$TPR = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}}$$
    • FPR (ложная положительная частота): Доля неправильно предсказанных положительных случаев относительно общего числа отрицательных случаев в данных. $$FPR = \frac{\text{False Positives}}{\text{False Positives} + \text{True Negatives}}$$
  3. Построение ROC-кривой: Постройте график, где по оси X откладывается FPR, а по оси Y – TPR. Каждая точка на кривой соответствует определенному порогу классификации.
  4. Вычисление AUC: Вычислите площадь под кривой ROC (AUC). Это можно сделать численно, например, методом трапеций или другими методами интегрирования.
    • Метод трапеций:

    $$ AUC = \sum_{i=1}^{n} \frac{(TPR_{i} + TPR_{i-1}) \cdot (FPR_{i-1} – FPR_{i})}{2} $$

    где n- количество порогов классификации, и TPRi и FPRi- значения чувствительности и ложной положительной частоты соответственно на i-том пороге.

Чем ближе значение AUC к 1, тем лучше модель классификации. Значение 0.5 соответствует случайному угадыванию класса, а значение менее 0.5 – показывает, что модель хуже, чем случайное угадывание.

В чем суть ROC-AUC?

Характеристика ROC-AUC (Receiver Operating Characteristic – Area Under the Curve) представляет собой метрику для оценки качества бинарной классификации моделей машинного обучения. Вот ключевые моменты:

  1. Классификация моделей: ROC-AUC применяется к моделям, которые делают бинарные предсказания, например, принадлежит ли объект положительному или отрицательному классу.
  2. Чувствительность и специфичность: ROC-AUC измеряет способность модели различать между положительными и отрицательными классами, учитывая различные пороги вероятности.
  3. ROC-кривая: Строится кривая, отображающая зависимость чувствительности (True Positive Rate – TPR) от специфичности (1 – False Positive Rate – FPR) при изменении порога классификации.
  4. AUC: Площадь под ROC-кривой (AUC) представляет собой численную оценку качества модели. AUC равен вероятности того, что модель правильно упорядочит случайные пары объектов, один из положительного, а другой из отрицательного класса.
  5. Интерпретация AUC: Значение AUC варьируется от 0 до 1. Модель с AUC равным 1 идеально различает классы, модель с AUC равным 0.5 не отличается от случайного угадывания, а модель с AUC меньше 0.5 работает хуже случайного угадывания.

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

Расскажи о разделении данных train/test split , а также об использовании кросс-валидации

Когда вы работаете с алгоритмами машинного обучения, важно иметь надежную оценку производительности вашей модели. Для этого данные обычно разделяют на два основных набора: тренировочный (train) и тестовый (test).

1. Train/Test Split:

Train Set (Обучающий набор): Этот набор данных используется для обучения модели. Модель “видит” эти данные и настраивает свои параметры в соответствии с ними.

Test Set (Тестовый набор): Этот набор данных не используется в процессе обучения. Вместо этого, он используется для оценки производительности модели после её обучения. Тестовый набор предоставляет оценку того, насколько хорошо ваша модель справляется с новыми данными, которые ей не известны.

Обычно, данные разделяют в соотношении, например, 80% для обучения и 20% для тестирования. Это может изменяться в зависимости от размера данных и конкретной задачи.

2. Кросс-валидация:

Хотя train/test split – распространенный метод, иногда он может привести к некоторым проблемам, таким как зависимость от конкретного разделения данных. Кросс-валидация предоставляет решение для этой проблемы.

Кросс-валидация (Cross-Validation): Это процесс, при котором данные разделяются на несколько частей, называемых “фолдами”. Затем модель обучается на нескольких фолдах и тестируется на оставшихся. Этот процесс повторяется несколько раз, и результаты усредняются.

Наиболее распространенный тип кросс-валидации – это K-fold Cross-Validation. Например, при K=5, данные разбиваются на 5 фолдов. Модель обучается на 4 фолдах и тестируется на оставшемся. Этот процесс повторяется 5 раз, каждый раз с новым тестовым фолдом.

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

Обычно, train/test split используется для простых сценариев, а кросс-валидация – для более надежной оценки при сложных задачах.

Кросс-валидация, чем она лучше чем разбиение на обучение и валидацию (train/val split)?

Кросс-валидация (cross-validation) имеет несколько преимуществ по сравнению с обычным разделением на обучение и валидацию (train/val split). Вот некоторые из основных причин, почему кросс-валидация может быть предпочтительной:

  1. Более устойчивая оценка производительности:
  • Кросс-валидация позволяет оценивать производительность модели несколько раз на различных подмножествах данных. Это может уменьшить влияние случайных факторов, которые могут возникнуть при однократном разделении данных.
  1. Использование всего набора данных для обучения и валидации:
  • В процессе кросс-валидации каждая часть данных используется как часть обучающего набора и как часть тестового набора. Это позволяет эффективнее использовать доступные данные, особенно если у вас ограниченный объем данных.
  1. Более точное выявление проблем переобучения и недообучения:
  • Кросс-валидация может помочь выявить, насколько модель способна обобщать на новые данные, что полезно для выявления проблем переобучения или недообучения.
  1. Борьба с дисбалансом данных:
  • Если у вас есть дисбаланс классов в данных, кросс-валидация может помочь в том, чтобы каждый класс хотя бы один раз был представлен в обучающем и тестовом наборах.
  1. Объективное сравнение моделей:
  • Когда у вас есть несколько моделей для сравнения, кросс-валидация предоставляет более объективные оценки производительности каждой модели, так как каждая модель оценивается на одних и тех же данных.

Вместе с тем, кросс-валидация может быть вычислительно затратной, особенно при использовании больших объемов данных. В таких случаях, train/val split может быть предпочтительным для ускорения процесса обучения и оценки модели.

Что такое переобучение? Из-за чего оно возникает, как его померить?

Переобучение (overfitting) – это явление в машинном обучении, при котором модель слишком точно подстраивается под тренировочные данные и теряет способность обобщения на новые, ранее не виденные данные. Это приводит к тому, что модель хорошо справляется с обучающими данными, но плохо справляется с реальными задачами из-за излишней сложности или специфичности.

Причины переобучения могут включать:

  1. Маленький объем данных: Если у вас недостаточно данных для обучения, модель может выучить шум в данных, вместо того чтобы обобщить общие закономерности.
  2. Сложность модели: Если модель слишком сложна, она может попытаться подстроиться под каждый тренировочный пример, включая шум, что приводит к переобучению.
  3. Переизбыток параметров: Если у модели слишком много параметров относительно объема данных, она может легко заучить тренировочные примеры, но не сможет обобщить на новые данные.
  4. Малая регуляризация: Отсутствие или недостаточная регуляризация модели может привести к переобучению. Регуляризация помогает предотвратить слишком агрессивное подстраивание под тренировочные данные.

Измерить переобучение можно с помощью следующих методов:

  1. Отложенная выборка (Holdout set): Разделите данные на тренировочный и тестовый наборы. Модель обучается на тренировочных данных, а затем оценивается на тестовых данных. Если модель хорошо справляется с тренировочными данными, но плохо с тестовыми, возможно, есть переобучение.
  2. Кросс-валидация: Разделите данные на несколько подмножеств (фолдов) и обучите/тестируйте модель несколько раз. Это может помочь получить более устойчивую оценку производительности модели.
  3. Кривые обучения и валидации: Постройте графики зависимости ошибки на тренировочных и тестовых данных от объема тренировочных данных. Если ошибка на тренировочных данных продолжает уменьшаться, а на тестовых данных начинает расти, это может быть признаком переобучения.
  4. Регуляризация: Добавление регуляризации к модели может помочь предотвратить переобучение, уменьшая веса параметров.

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

Как бороться с переобучением?

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

  1. Увеличение объема данных:
    • Попробуйте собрать больше данных для обучения. Больший объем данных обычно помогает модели лучше обобщать.
  2. Регуляризация:
    • Используйте методы регуляризации, такие как L1 или L2 регуляризация, чтобы штрафовать большие веса параметров и предотвратить переобучение.
  3. Упрощение модели:
    • Снизьте сложность модели, уменьшив количество параметров или слоев. Это может помочь предотвратить излишнюю подстройку под тренировочные данные.

Что такое регуляризация?

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

Существует два основных типа регуляризации, которые часто используются:

  1. L1 (Lasso) регуляризация:
  • В этом случае к функции потерь добавляется сумма абсолютных значений весов параметров модели, умноженных на коэффициент регуляризации. Формально это выглядит так: $$ L1 = \lambda \sum_{i=1}^{n} |w_i|$$ где (λ) — коэффициент регуляризации, ( n ) — количество параметров модели, ( 𝑤𝑖 ) — вес i-го параметра.
  • L1 регуляризация может приводить к разреженным моделям, так как она способствует обнулению весов некоторых признаков.
  1. L2 (Ridge) регуляризация:
  • В этом случае к функции потерь добавляется сумма квадратов весов параметров модели, умноженных на коэффициент регуляризации. Формально это выглядит так:$$ L2 = \lambda \sum_{i=1}^{n} w_i^2 $$ где ( λ ) — коэффициент регуляризации, ( n ) — количество параметров модели, ( 𝑤𝑖 ) — вес i-го параметра.
  • L2 регуляризация предотвращает большие значения весов, что способствует сглаживанию модели.

Оба вида регуляризации могут использоваться одновременно, образуя так называемую Elastic Net регуляризацию. Выбор между L1 и L2 регуляризацией зависит от характеристик конкретной задачи и особенностей данных. Коэффициент регуляризации (λ) настраивается в процессе обучения для достижения баланса между подгонкой модели к данным и предотвращением переобучения.

Метод наименьших квадратов (МНК) – что это такое?

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

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

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

Метод максимального правдоподобия (ММП) – что это такое?

Метод максимального правдоподобия (ММП) — это статистический метод оценки параметров модели, который основан на выборе таких значений параметров, при которых вероятность получения имеющегося наблюдаемого набора данных (правдоподобие) будет максимальной.

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

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

Пред.
За гранью среднего: меры центральной тенденции

За гранью среднего: меры центральной тенденции

Содержание Показать Зачем нужны меры центральной тенденции?

След.
Метрики и воронки: ключевые инструменты для повышения конверсии и роста бизнеса

Метрики и воронки: ключевые инструменты для повышения конверсии и роста бизнеса

Содержание Показать Зачем нужны метрики?