глоссарий

Class weight

Class weight

Class weight, или вес класса, — это числовой коэффициент, который в машинном обучении задаёт значимость каждого класса при обучении модели. Если говорить просто, модель смотрит на ошибки: чем больше ошибка, тем сильнее она меняет свои настройки. Вес класса позволяет сделать так, чтобы ошибка на редком классе была важнее, чем ошибка на частом.

Зачем это нужно? В реальных данных почти всегда есть перекос: например, спама мало, а обычных писем много, или бракованных деталей единицы, а нормальных тысячи. Если обучать модель без весов, она быстро поймёт, что выгодно всегда предсказывать самый частый класс: так ошибка будет маленькой по числу, но на практике это бесполезно. Веса решают эту проблему, искусственно повышая «штраф» за неправильную классификацию редких объектов.

Как это работает интуитивно? Представьте учителя, который ставит двойку за ошибку в простой задаче и пять двоек за ошибку в сложной. Ученик начнёт уделять сложным темам больше внимания. Так и модель: при подсчёте ошибки она умножает вклад каждого примера на вес его класса. Пример из класса с весом 100 будет давать в сто раз больший вклад в обучение, чем пример с весом 1. Итог — модель старается правильно распознавать именно редкие примеры, даже если их совсем мало.

Типичный пример — диагностика редкого заболевания. Пусть в выборке 99% здоровых и 1% больных. Без весов модель предскажет «здоров» всем подряд и получит точность 99%, но ни одного больного не найдёт. С весами классов, скажем, 1 для здоровых и 99 для больных, ошибка на пропущенном больном станет очень большой, и модель научится выявлять болезнь по тонким признакам. В итоге она будет чаще ошибаться на здоровых, но зато спасёт жизни, находя настоящих пациентов.

Таким образом, class weight — это простой, но мощный приём: он не меняет алгоритм, а лишь переставляет акценты в его обучении, делая модель справедливой к редким, но критически важным классам.