Глава 3. Вводим нелинейность: теперь не только взвешенные суммы
127
гативные примеры данных зачастую не распределены равным образом. Нередко
встречается ситуация, когда количество позитивных примеров данных намного
меньше, чем негативных (например, большинство ссылок — не фишинговые,
большинство деталей — не бракованные и т. д.). А если только 5 ссылок из 100
фишинговые, наша сеть может всегда выдавать, что ссылка не фишинговая, и без
ошибочность будет равна 95 %! С этой точки зрения безошибочность — очень
плохая мера качества работы системы. Всегда кажется, что высокая безошибоч
ность — это хорошо, но часто такой вывод становится преждевременным. Следить
за показателем безошибочности не помешает, но в качестве функции потерь она
подходит плохо.
Следующая пара метрик, улавливающих нюансы ошибок, допускаемых моделью:
точность
(precision) и
полнота
(recall). В дальнейшем мы будем обсуждать задачи,
в которых позитивный результат подразумевает последующие действия — подсвет
ку ссылки, пометку сообщения для дальнейшего просмотра в ручном режиме, в то
время как негативный результат означает, что ничего не надо делать. Эти метрики
относятся к различным видам «неправильности» предсказаний нашей модели.
Точность
— отношение количества позитивных предсказаний модели к действи
тельно позитивным:
точность = #TP / (#TP + #FP)
При значениях, указанных в нашей матрице различий, получается:
точность = 4 / (4 + 1) = 80%
Как и безошибочность, показатель точности можно обмануть. Можно марки
ровать как позитивные только входные примеры данных лишь с очень большим
выходным сигналом сигмафункции (скажем, > 0,95 вместо > 0,5 по умолчанию),
сделав модель очень консервативной. Обычно подобный вариант приводит к росту
точности, но и к пропуску моделью множества действительно позитивных примеров
данных (маркированию их как негативных). Эту проблему позволяет решить еще
одна метрика, часто сопутствующая точности и дополняющая ее, — полнота.
Полнота
— отношение количества действительно позитивных примеров данных
к количеству примеров, классифицированных моделью как позитивные:
полнота = #TP / (#TP + #FN)
Для нашего примера получаем:
полнота = 4 / (4 + 2) = 66.7%
Сколько же данных набора нашла модель из всех позитивных примеров? Обычно
принимается осознанное решение повысить частоту ложных срабатываний, чтобы
снизить вероятность пропустить чтолибо. Чтобы обмануть эту метрику, достаточно
объявить все примеры данных позитивными; поскольку ложнопозитивные при
меры не включаются в уравнение, получится 100%ная полнота за счет снижения
точности.
Как видим, довольно просто создать систему, демонстрирующую отличные ре
зультаты относительно метрики безошибочности, полноты или точности. На прак
тике же в задачах бинарной классификации зачастую очень непросто достичь
128
Do'stlaringiz bilan baham: |