Вопрос или проблема
Это для многоклассовой классификации. Перед настройкой n_neighbors для KNN результаты были следующие:
Точность на обучающей выборке: 99.54%
Точность на тестовой выборке: 99.58%
ROC AUC: 99.86%
После поиска оптимального n_neighbors результаты были следующие:
Точность на обучающей выборке: 99.64%
Точность на тестовой выборке: 99.67%
ROC AUC: 99.82%
Мой показатель полноты повысился с 0.996 до 0.997. Как мы видим, результаты улучшились без переобучения. Но почему же мой ROC AUC снизился на 0.04? Я думал, что ROC AUC увеличивается, когда модель улучшается? Мои матрицы неточностей также улучшились:
Сначала я отвечу для двуклассовой классификации.
Ваши значения точности и полноты показываются для одного порога. ROC AUC учитывает все пороги. Порог здесь – это решение о том, как использовать числовой вывод вашей модели для выбора одного из двух классов.
Таким образом, ваши результаты показывают, что для одного порога ваши результаты улучшились. Но, поскольку AUC снизился, для других порогов это должно быть хуже. AUC – это площадь под кривой, и часто хорошей идеей будет построить кривые.
AUC не так часто используется для многоклассовой классификации. Я полагаю, что обычно это делается как один класс против всех других классов. Так что в вашем случае у вас было бы 8 кривых, а не одна. И затем AUC для этих кривых усредняется.
Снова, рисование кривых – это лучший способ понять, что изменилось в ваших моделях до и после.
Ответ или решение
Объяснение снижения ROC AUC после настройки n_neighbors
для KNN в многоклассовой классификации
При анализе перехода от одного значения n_neighbors
к другому в контексте алгоритма K-ближайших соседей (KNN) возникает интересный вопрос относительно изменений в метриках качества модели, особенно ROC AUC.
1. Сравнение метрик до и после настройки
Из таблицы метрик видно следующее:
-
Перед настройкой:
- Train Accuracy: 99.54%
- Test Accuracy: 99.58%
- ROC AUC Score: 99.86%
-
После настройки:
- Train Accuracy: 99.64%
- Test Accuracy: 99.67%
- ROC AUC Score: 99.82%
Важно отметить, что метрики точности как на обучающей, так и на тестовой выборке значительно повысились, однако ROC AUC Score резко снизился на 0.04.
2. Понимание ROC AUC
ROC AUC (Area Under the Receiver Operating Characteristic Curve) — это метрика, которая измеряет качество классификатора, исследуя его производительность при различных порогах решения. В то время как такие метрики, как точность и полнота (recall), могут улучшаться при изменении одной из настроек или моделей, ROC AUC учитывает все возможные пороги в пределах модели и, следовательно, может дать более полное представление о её способности распознавать положительные и отрицательные классы.
3. Влияние настройки n_neighbors
Настройка параметра n_neighbors
позволяет модели более точно подстраиваться под данные, что может улучшить метрики, связанные с конкретным порогом. Однако это также может привести к ухудшению результатов на других порогах. К примеру, новая конфигурация может стать более чувствительной к ошибкам в некоторых классах, что негативно сказывается на их AUC.
В многоклассовой классификации ROC AUC обычно вычисляется как усредненное значение AUC всех классов (один класс против всех), что может скрывать ухудшение производительности для некоторых классов.
4. Результаты матриц замешательства
Рассматривая ваши матрицы замешательства до и после оптимизации, необходимо отметить, что несмотря на их визуальное улучшение, для более глубокого анализа необходимо провести дополнительный анализ каждого класса, чтобы понять, каким образом изменились истинные положительные и ложные положительные для различных классов.
5. Рекомендации
Чтобы лучше понять изменение поведения вашей модели:
- Постройте ROC-кривые для каждого класса, а затем посчитайте AUC для каждой кривой. Это даст вам понимание производительности для каждого отдельного класса.
- Анализируйте результаты по классам, чтобы выявить, в каких местах произошли потери производительности, и как это сказывается на общем значении ROC AUC.
- Исследуйте различие в предсказаниях для границ между классами, чтобы понять, какое влияние оказывает настройка на выбор соседей.
Заключение
Резкая разница в ROC AUC до и после настройки n_neighbors
показывает, насколько важно рассматривать все аспекты вашей модели при оценке её производительности. Построение графиков и глубокий анализ результатов помогут выявить скрытые паттерны и связи, которые могут влиять на итоговые метрики, что в конечном итоге приведет к более обоснованным решениям в отношении настройки и оценки моделей.