|
399 | 399 | ] |
400 | 400 | }, |
401 | 401 | "source": [ |
402 | | - "## Обучение на выборке с малым количеством положительных примеров\n", |
| 402 | + "## Бинарная классификация при низкой доле положительных примеров\n", |
403 | 403 | "\n", |
404 | | - "Допустим, предстоит решить задачу бинарной классификации, где объектов положительного класса не более нескольких десятков (а объектов отрицательного класса заметно больше). Опасность здесь кроется в том, что при хоть сколько-нибудь большом количестве исходных признаков резко возрастает риск переподгонки (overfitting), вызванной обнаружением иллюзорных закономерностей. Высоки шансы того, что какая-либо комбинация признаков чисто случайно позволит хорошо отделить объекты положительного класса. На то же самое можно посмотреть и под таким углом: для отделения небольшого количества точек в пространстве высокой размерности подойдут многие довольно простые разделяющие поверхности.\n", |
| 404 | + "#### Проблемы\n", |
405 | 405 | "\n", |
406 | | - "Иногда решить проблему удаётся при помощи вовлечения автокодировщика. Пусть автокодировщик со скрытым слоем ощутимо меньшей размерности будет обучен по признакам объекта восстанавливать их же. Тем самым будет выучено признаковое представление, от которого ожидается, что все новые признаки будут информативными и отражающими важные для задачи стороны реального мира. Если выйдет получить такое признаковое представление, риск переподгонки сократится. " |
| 406 | + "Если в задаче бинарой классификации положительные примеры встречаютя гораздо реже отрицательных, то из-за этого возникают следующие сложности:\n", |
| 407 | + "* дисбаланс классов может мешать оптимизации на этапе обучения;\n", |
| 408 | + "* возрастает риск переподгонки (overfitting) под немногие доступные положительные примеры;\n", |
| 409 | + "* оценки точности и полноты имеют слишком большую дисперсию, из-за чего разница между разными классификаторами оказывается статистически незначимой.\n", |
| 410 | + "\n", |
| 411 | + "#### Формирование выборки\n", |
| 412 | + "\n", |
| 413 | + "На практике часто имеется возможность собирать выборку (например, отправлять объекты на разметку в краудсорсинговые сервисы). В таком случае баланс классов можно выравнять.\n", |
| 414 | + "\n", |
| 415 | + "Идея такова: простой классификатор (или набор эвристик) удаляет очевидные объекты нулевого класса, а среди оставшихся объектов доля положительного класса уже не такая маленькая и на них можно обучить основной классификатор.\n", |
| 416 | + "\n", |
| 417 | + "В разбивке по шагам данный приём выглядит так:\n", |
| 418 | + "* собираются предварительные данные;\n", |
| 419 | + "* на них обучается классификатор (или даже просто подбирается набор эвристик), обладающий следующими свойствами:\n", |
| 420 | + " - полнота близка к 100%,\n", |
| 421 | + " - точность по положительному классу позволяет получить более-менее приемлемый баланс классов на том, что отнесено им к положительному классу (то есть даже 10% должно быть достаточно);\n", |
| 422 | + "* только из объектов, относимых предварительным классификатором к положительному классу, составляется новая выборка;\n", |
| 423 | + "* на ней обучается второй классификатор;\n", |
| 424 | + "* на этапе инференса эти классификаторы тоже применяются как каскад, то есть второй применяется лишь к тому, что прошло через первый.\n", |
| 425 | + "\n", |
| 426 | + "Важным условием корректности описанной схемы является почти идеальная полнота первого классификатора. Если это условие нарушается, полнота каскада заведомо будет ограничена потерями первого классификатора. А если от первого классификатора отказаться, получится, что второй классификатор обучался и оценивался на выборке, смещённой относительно той, к которой он теперь применяется. \n", |
| 427 | + " \n", |
| 428 | + "#### Обучение на зафиксированной выборке\n", |
| 429 | + "\n", |
| 430 | + "Однако бывает и так, что выборка уже задана заранее (например, на соревнованиях по машинному обучению или когда нужно обучить модель на готовых данных, которые передал клиент).\n", |
| 431 | + "\n", |
| 432 | + "В таком случае даже калибровка поможет получить подлинные вероятности лишь в той мере, в какой баланс классов в выборке соответствует балансу классов в генеральной совокупности. Также, если оценки точности и полноты будут слишком шумными, то с этим ничего не сделать.\n", |
| 433 | + "\n", |
| 434 | + "А вот сократить риск переподгонки позволяет приём с автокодировщиком. Можно обучить автокодировщик по исходным признакам восстанавливать их же, чтобы в промежуточном слое меньшей размерности выучивалось более общее признаковое представление. За счёт меньшего количества признаков падает выразительная сила классификатора и тем самым и уменьшается риск принять случайные частности за закономерность. При этом важно соблюсти баланс между понижением размерности и сохранением полезной информации." |
407 | 435 | ] |
408 | 436 | }, |
409 | 437 | { |
|
0 commit comments