ГоловнаСтатті

Пастка Незбалансованих Класів: Чому Точність у 95% Може Бути Клінічно Безцінною

Чому модель, яка досягає точності 95%, все ще може бути клінічно безглуздою, і як показники F1-score, precision, recall та вагу класів виявляють справідне значення продуктивності моделей машинного навчання, навчених на рідкісних медичних результатах.

mysimulator teamОновлено — червень 2026≈ 5 хв читання▶ Відкрити симуляцію

Повноцінна модель з 95% точності абсолютно безкорисна

Ось справді наочна невдача, що демонструє застосування машинного навчання в медицині. Розгляньте набір даних із 5110 пацієнтів, де 4861 ніколи не переносили інсульт, а 249 – так. Це приблизно 19,5-до-1 дисбаланс між більшістю та меншинною класами. Тепер побудуйте найпростіший можливий «модель»: той, що завжди передбачає «відсутність інсульту», незалежно від будь-якого вхідного значення. При вимірюванні точності (plain accuracy), ця модель показує 95,1%. Це звучить вражаюче на слайді. Але це також марна справа, оскільки вона не зможе ідентифікувати жодного з 249 пацієнтів, які дійсно перенесли інсульт. У контексті скринінгу цей групу пацієнтів весь цей проєкт існує для пошуку.

Це не гіпотетична пастка; це точний базовий показник, який використовувався в реальному проєкті моделювання ризику інсульту, спеціально включений у таблицю результатів, щоб продемонструвати проблему до введення більш складних моделей. Це один з найбільш інформативних чисел у всьому проєктом, оскільки воно показує одразу, чому точність є неправильним головним показником, коли результат, який вас цікавить, рідкісний.”]} p1:

paragraphs_count

heading_uk

paragraphs_uk

heading

paragraphs

Незбалансованість класів – це правило, а не виняток, у медицині

Рідкісні позитивні результати є нормою в клінічному прогнозуванні, а не незвичною перевагою. Інсульти, певні види раку, сепсис, рідкісні генетичні захворювання та побічні реакції на ліки – всі вони, на щастя, рідкісні у загальній популяції – що й пояснює їхню складність виявлення та цінність інструментів прогнозування скринінгу в першу чергу. Однак ця рідкість означає, що будь-який набір даних, створений з реальних медичних записів або публічної статистики охорони здоров’я, буде домінувати негативними випадками, а будь-яка модель, навчена без урахування цього, схилятиметься до ледарського стратегії прогнозування більшості класів, оскільки це мінімізує середню похибку в усій навчальній вибірці, хоча це катастрофічно для меншого класу зокрема.

Це створює прямий конфлікт між тим, що винагороджує наївний оптимізаційний процес, і тим, що дійсно потрібно при клінічному застосуванні. Модель, оптимізована для загальної точності на незбалансованому наборі даних з співвідношенням 19,5:1, може покращити свій показник точності просто ставши більш консервативною та прогнозуючи негативні випадки частіше – протилежне тому, що має робити скринінговий інструмент.

Точність, чутливість і чому F1 є ключовим показником

Два показники мають значення тут більше, ніж точність: точність, яка є часткою пацієнтів, позначених як високоризикових, які насправді були високоризиковими, та чутливість, яка є часткою справді високоризикових пацієнтів, яких модель успішно виявила. Ці два показники природно взаємодіють один з одним — модель може досягти 100% чутливості, просто позначивши кожного пацієнта як високоризикового, на шкоду точності, або досягти 100% точності, лише позначивши найбільш очевидний випадок, на шкоду чутливості. Індекс F1 є гармонічним середнім цих двох і був спеціально обраний основним показником оцінки для проекту зі ставли, щойно тому, що він карає моделі, які жертвують одним показником, щоб збільшити інший, змушуючи досягти справді балансу.

На тестовому наборі даних, який не використовувався під час навчання, найкраща налаштована модель XGBoost досягла точності 78% та чутливості 84%, що в сумі дало індекс F1 0,80 — картина значно відмінніша та більш інформативна, ніж 95% точність базової моделі без будь-яких змін.

Виправлення дисбалансу під час навчання, а не просто вимірювання цього після

Вибір F1 як метрики оцінювання вирішує лише половину проблеми — він правильно оцінює модель, але сам по собі нічого не робить для покращення моделі в розпізнаванні міноритарної класи. Інша половина рішення реалізується під час навчання. Проєкт Stroke використовував вагу класів: для логістичної регресії – ‘збалансоване’ налаштування ваги класів, яке автоматично збільшує вагу помилок на міноритарній класі під час оптимізації; для XGBoost – параметр scale_pos_weight встановлено на 19.5, що відповідає фактичному співвідношенню дисбалансу в навчальних даних, що вказує алгоритму розглядати пропущений випадок інсульту як приблизно дев'ятнадцять і пів десятків разів дорожчим за хибне сповіщення під час навчання.

Виміряний ефект цього переважування був значним: вага класів покращила показник F1 на приблизно 0,05–0,10 у різних сімействах моделей, що є суттєвим стрибком для зміни одного гіперпараметра. Інші усталені методи для вирішення тієї ж проблеми включають методи передислокації, такі як SMOTE (Synthetic Minority Oversampling Technique), який генерує синтетичні приклади рідкісної класи для збалансування навчального набору, та зменшення передислокації більшості класів – обидва вважаються перспективними напрямками подальших ітерацій цього проєкту, поряд із ансамблевим стовпомком кількох типів моделей.

Перелік для виявлення цієї проблеми в реальних умовах

Цей шаблон узагальнюється не лише для прогнозування мікроінсультів, і варто звертати на нього увагу кожного разу, коли ви зустрічаєте результати машинного навчання, що повідомляються для медичних, виявлення шахрайства, систем безпеки або будь-яких інших рідкості подій. По-перше, перевірте рівновагу класів у підготовленому наборі даних перед тим, як довіряти будь-якому показнику точності — показник точності вище приблизно 90% на наборі даних, де позитивний клас є рідкісним, є сигналом для подальшого розслідування, а не причиною впевненості. По-друге, зверніть увагу на прецизійність, чутливість та F1 (або еквівалентну збалансовану метрику) замість точності самої; якщо точність єдиною, що повідомляється для незбалансованої проблеми, ставтеся до результату з реальним скептицизмом. По-третє, перевірте, чи робило процес навчання будь-які явні кроки для вирішення дисбалансу — вагові коефіцієнти класів, передискретизація або функція втрат з урахуванням вартості, оскільки модель, навчена без будь-яких таких коригувань, зазвичай показуватиме гірші результати на меншості класів, незалежно від того, яку метрику використовується для подальшого звітування. Для цього не потрібні просунуті статистичні методи — достатньо поставити одне запитання перед тим, як прийняти будь-яке число точності доруч: наскільки рідкісна річ, яку ми намагаємося виявити?

Часті запитання

Яке гарне правило для виявлення оманливої точності?

Якщо позитивна категорія, яка вас цікавить (хвороба, випадок шахрайства, несправність), становить менше приблизно 10-15% набору даних, висока точність сама по собі не дає вам багато інформації. Завжди шукайте прецизійність, чутливість або F1-оцінку разом із нею.

Що таке F1-оцінка?

F1-оцінка – це гармонійна середня між прецизійністю та чутливістю, розрахована як 2 x (прецизійність x чутливість) / (прецизійність + чутливість). Оскільки це гармонічна, а не арифметична, вона жорстко штрафує моделі, де прецизійність або чутливість дуже низькі, навіть якщо інша дуже висока.

Що таке scale_pos_weight в XGBoost?

Це гіперпараметр, який повідомляє моделі, наскільки важче штрафувати помилки на позитивній (меншості) класі порівняно з негативною. Встановлення його рівним співвідношенню дисбалансу класів, наприклад, 19,5 для набору даних із співвідношення 19,5 до 1, є поширеною відправною точкою.

Чи краще SMOTE, ніж вагавання класів, для усунення дисбалансу?

Ні того, ні іншого не завжди краще; вони вирішують одну й ту саму проблему по-різному. Вагавання класів коригує функцію втрат під час навчання без зміни даних, а SMOTE (Техніка синтетичного перебільшення меншості) генерує синтетичні приклади меншості, щоб фізично збалансувати навчальний набір. Обидва часто випробовують і порівнюють під час розробки моделі.

Чому модель зі стрічкою пріоритизувала чутливість над прецизійністю?

Тому що в контексті медичного скринінгу хибно негативний результат (пропуск реального пацієнта з ризиком) зазвичай вважається більш шкідливим, ніж хибно позитивний результат (маркування низькоризикованого пацієнта на непотрібне подальше обстеження). Оцінка та вагавання класів моделі були відповідно відрегульовані, досягнувши 84% чутливості проти 78% прецизійності на тестовому наборі.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію the simulation

Що ви знайшли?

Додати кроки відтворення (опційно)