Как обучить модели классификации машинного обучения, когда существует более одной правильной метки? - PullRequest
0 голосов
/ 17 мая 2018

У меня есть простой набор данных с 20 функциями и 8 возможными метками. Однако для некоторых записей может быть несколько правильных ярлыков. Я хотел бы обучить эту модель так, чтобы предсказанная метка была одной из возможных меток. Что было бы хорошим способом сделать это?

Пример: рассмотрим следующую запись:

[color: grey; legs:2; wings:2; mass: 120g;....]

Некоторые записи помечены как «Воробей», а некоторые другие - как «Птица». Во время тестирования мне все равно, какой из этих ярлыков назначен записи, если это один из них.

1 Ответ

0 голосов
/ 17 мая 2018

Это, безусловно, зависит от модели, но если вы используете нейронную сеть с кросс-энтропийной потерей, это вполне возможно.В обычном случае метка представляет собой горячий вектор [0, ..., 0, 1, 0, ... 0].Это вероятностная интерпретация заключается в том, что целевой класс i с вероятностью 1.00.0 для всех других классов).

Ничто не мешает вам определить метку [0, ..., 0, 0.5, 0, ..., 0, 0.5, 0, ... 0]: правильный класс - i с вероятностью 0.5 и j с вероятностью 0.5.Таким образом, модель узнает, что обе эти метки являются правильными для данного ввода.После обучения модели вы можете даже вывести два или более классов, например, все классы, вероятность которых превышает threshold.Или вы всегда можете выбрать максимально вероятный класс, в этом случае можно выбрать любой класс.

Обратите внимание, что этот прием (называемый мягкими классами ) работает только с вероятностным модели, а не все алгоритмы машинного обучения являются вероятностными.Так что выбор модели здесь имеет значение.

...