Машинное обучение: Сравнение моделей классификации

Вопрос или проблема

Дан набор данных, который мне нужно использовать для классификации, и я хочу сравнить эффективность различных моделей классификации.
Предположим, я хочу рассмотреть логистическую регрессию (с разными точками отсечения) и KNN.
Есть ли какие-либо проблемы, если я поступлю следующим образом:

  1. Разделить данные на тренировочные и валидационные (и тестовый набор для оценки производительности победившей модели).
  2. Обучить модель логистической регрессии и модель классификации KNN на тренировочном наборе.
    Я рассматриваю каждую точку отсечения t между 0 и 1 как модель классификации – таким образом, регрессионная модель приводит к множеству моделей классификации.
  3. Теперь я сравниваю в определенном диапазоне t (скажем, от 0.01 до 0.99) классификационное качество всех моих моделей (логистическая регрессия для этих t и KNN) на валидационных данных.
    Я выберу ту, которая показывает наилучшую производительность (на основе определенной метрики).

Я обсуждал это с кем-то, кто утверждал, что t нужно рассматривать как гиперпараметр и этот параметр нужно настраивать отдельно.
Если это правда – почему? И что не так с моими аргументами выше?

Я бы следовал следующей процедуре:

  1. Разделите данные на тренировочные и тестовые наборы (а также валидационный набор, если вы не хотите использовать k-кратную перекрестную проверку).
  2. Обучите различные модели, используя k-кратную перекрестную проверку, чтобы также найти лучшие гиперпараметры. Один из гиперпараметров может быть дискриминационный порог (точка отсечения), о которой вы говорили.
  3. Используйте модели для предсказания тестового набора данных, чтобы оценить производительность моделей на невидимом наборе. Теперь вы можете выбрать лучшую модель.

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

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

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

В принципе, вы можете использовать свой подход.

Однако не следует оптимизировать на тестовом наборе (шаг 3). Вместо этого вы должны выбрать лучший t, используя валидационный набор.
Затем вы сравниваете его с KNN, также на валидационном наборе. Наконец, лучшая модель должна быть оценена на тестовом наборе.

НЕ ИСПОЛЬЗУЙТЕ ТОЧНОСТЬ! ИСПОЛЬЗУЙТЕ ПРАВИЛЬНЫЕ ПРАВИЛА ОЦЕНКИ!

То, что вы предлагаете, связано с площадью под кривой оператора приемника, ROCAUC. ROC изображает чувствительность и специфичность (реально 1-специфичность) при всех возможных порогах отсечения.

Похоже, что вы выберете модель с наибольшим значением точности, независимо от этого порога. Если лучшая точность получается от логистической регрессии с порогом $0.6$, выберите эту модель. Если лучшая точность получается от KNN с порогом $0.07$, выберите эту модель.

Звучит здорово, да, выбрать самую точную модель?

ЭТО НЕПРАВИЛЬНО, хотя это и звучит заманчиво. Вот несколько блогов по этой теме профессора Университета Вандербильта и активного участника Cross Validated (Stack Statistics).

https://www.fharrell.com/post/class-damage/

https://www.fharrell.com/post/classification/

(Фрэнк Харрел даже написал пост о том, почему ROCAUC неидеален для сравнения моделей.)

Точность – это некорректный показатель производительности. Любая метрика производительности, основанная на пороге, имеет значительные недостатки. Пожалуйста, обратитесь к этому отличному посту на эту тему.

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

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

Легкое правило правильной оценки, чтобы начать, – это Brier score, в основном квадратная потеря. Возьмите вероятность быть в классе $1$, вычтите истинный класс ($0$ или $1$), возведите это значение в квадрат и сложите эти значения для каждого предсказания.

$$Brier(y,\hat{p}) = \sum_{i=1}^N \big(y_i-\hat{p}_i \big)^2$$

$y_i$ – это истинный класс, $0$ или $1$, и $\hat{p}_i$ – это предсказанная вероятность (которая, скорее всего, будет предсказанной вероятностью быть в классе $1$). Вы можете скорректировать Brier score, если ваше программное обеспечение дает вам вероятность быть в классе $0$.

Я обсуждал это с кем-то, кто утверждал, что t нужно рассматривать как гиперпараметр и этот параметр нужно настраивать отдельно.

В вашем упражнении вы фактически делаете то же самое. Получение лучшего t. Так что, я не думаю, что вам нужно что-то дополнительное.

Что я вижу отсутствующим в ваших шагах –

– Нет шагов для получения лучшего K(ближайшие соседи) для KNN

– Нет шагов для оптимизации параметров логистической регрессии с регуляризацией (если потребуется)

О метриках –

(55 + 45 )/100 и (45 + 55)/100 имеют одинаковую точность.

Вы должны быть уверены, что вы хотите, один из Классов или баланс метрик

.

Ответ или решение

Сравнение моделей классификации в машинном обучении: Обзор подхода

Теория: В машинном обучении выбор правильного метода и гиперпараметров для задач классификации является важным аспектом для достижения высокой точности. Чаще всего рассматриваются такие модели, как логистическая регрессия и K-ближайших соседей (KNN), поскольку они обеспечивают различные подходы к решению задач классификации. Логистическая регрессия светится при наличии линейной разделимости данных, в то время как KNN может быть более эффективным в сложных нелинейных пространствах. Одним из ключевых моментов в адаптации моделей классификации является выбор среза для логистической регрессии или количества соседей для KNN, которые должны быть настроены как гиперпараметры.

Пример: Рассмотрим ситуацию, где у вас есть набор данных, который нужно разделить на обучающую, валидационную и тестовую выборки. Обе модели, логистическая регрессия и KNN, настраиваются на обучающем наборе данных. Для логистической регрессии необходимо анализировать различные значения порога, например от 0.01 до 0.99, чтобы найти оптимальное значение, которое максимизирует желаемую метрику производительности, такую как точность, чувствительность или специфичность. Для модели KNN также требуется определение числа соседей K, который обеспечивает наилучшую производительность на валидационном наборе данных.

Применение: Для сравнения и оценки производительности моделей важно применять правильные метрики. Рекомендация использовать такие метрики, как Brier score, который позволяет проводить всестороннюю оценку качества модели, основанную на вероятностях, а не просто на бинарных классификациях. Это помогает избежать проблем, присущих метрике точности, таких как неравномерность баланса классов. Ваша текущая методика должна включать настройку среза логистической регрессии и числа соседей для KNN через процедуру перекрестной валидации, чтобы лучше настроить гиперпараметры.

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

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

Оцените материал
Добавить комментарий

Капча загружается...