Я видел несколько вопросов о дисбалансе класса в многоклассовой настройке. Однако у меня проблема с несколькими ярлыками, так как бы вы справились с этим в этом случае?Работа с дисбалансом класса в классификации с несколькими метками
У меня есть набор из примерно 300 тысяч текстовых примеров. Как упоминалось в названии, каждый пример имеет по крайней мере одну метку, и существует только 100 возможных уникальных меток. Я уменьшил эту проблему до бинарной классификации для Vowpal Wabbit, воспользовавшись пространствами имен, например.
От:
healthy fruit | bananas oranges jack fruit
evil monkey | bipedal organism family guy
...
To:
1 |healthy bananas oranges jack fruit
1 |fruit bananas oranges jack fruit
0 |evil bananas oranges jack fruit
0 |monkey bananas oranges jack fruit
0 |healthy bipedal organism family guy
0 |fruit bipedal organism family guy
1 |evil bipedal organism family guy
1 |monkey bipedal organism family guy
...
Я использую параметры по умолчанию, предоставленные VW (который я думаю, онлайно SGD, с функцией квадрата потерь). Я использую квадратные потери, потому что он очень похож на потерю Хэмминга.
После тренировки при тестировании на одном и том же учебном наборе Я заметил, что все примеры были предсказаны с помощью метки «0» ... что является одним из способов минимизации потерь, я думаю. На данный момент я не уверен, что делать. Я думал о том, чтобы использовать экономичную классификацию «один против всех», чтобы попытаться сбалансировать классы, но сокращение мультимаркировки до мультикласса неосуществимо, поскольку существует комбинация меток 2^100. Мне интересно, есть ли у кого-нибудь предложения.
Редактировать: У меня, наконец, была возможность проверить класс-дисбаланс, в частности на vw
. vw
обрабатывает дисбаланс очень плохо, по крайней мере, для высокоразмерных, малонаселенных текстовых функций. Я пробовал соотношение от 1: 1 до 1:25, производительность резко снижалась с коэффициентом 1: 2.
Я могу полностью избавиться от ярлыков '0'. И метки * являются * пространствами имен в двоичной редукции. – richizy
Вы могли найти ответ на свой вопрос? Не похоже, что у нас есть твердый ответ. –
@ML_Pro [См. Мой ответ] (http://stackoverflow.com/a/22767594/345660): используйте '--loss_function logistic'. – Zach