Вопрос или проблема
У меня есть набор данных, к которому я хотел бы применить алгоритм машинного обучения для многоклассовой классификации. Пример моей целевой переменной (в строковом формате, позже будет OneHotEncode
-д):
| целевая |
+-------------------+
| (Майк, Майкл) |
| (Анна, Аннабель) |
| (Джо, Джозеф) |
| (Марк, ) |
| (Аарон, ) |
+-------------------+
Я хочу иметь модель, которая, например, предсказывает Джозефа
, но не считает это неправильным, потому что это один из двух возможных ответов.
Это многоклассовая или множественная метка проблема? Могут ли две эти определения сосуществовать или это одно из них? Я немного запутался, хотя склоняюсь ко второму.
Если мое предположение верно, будет ли достаточно просто выбрать одну из моделей, которая поддерживает множественную метку классификации, fit()
ее и score()
?
Я хочу иметь модель, которая, например, предсказывает Джозефа, но не считает это неправильным, потому что это один из двух возможных ответов.
Кажется, вы путаете предсказание и оценку: является ли ответ правильным или нет, это вопрос оценки, и метод оценки не обязательно должен следовать тем же правилам, что и предсказательная система.
Например, система может быть разработана так, чтобы всегда предсказывать одно имя, а мера оценки может основываться на том, принадлежит ли предсказанное имя к набору правильных ответов или нет. Это технически будет простой многоклассовой классификацией, так как предсказывается один класс. Однако вам придется реализовать свой собственный метод оценки, потому что стандартный метод будет считать правильным только в том случае, если предсказание точно соответствует истинному классу.
Вы также можете решить, что система может предсказывать любую комбинацию имён, это была бы многометочная классификация. Но опять же вы можете выбрать любой конкретный метод оценки, например, считать предсказание правильным, если оно содержит хотя бы один из истинных ответов, или содержит только имена, которые принадлежат истинному ответу и т. д.
Обратите внимание, что в теории любую задачу с множественной меткой можно преобразовать в многоклассовую задачу, просто рассмотрев любой возможный набор классов как один класс (например, “Майк+Майкл” как один класс). В общем, это вопрос количества значений, поскольку если каждая возможная комбинация может встречаться в данных, то на выходе будет $2^N$ классов. Я не думаю, что это имеет отношение к вашему случаю, так как это бы противоречило идее гибкого метода оценки.
Ответ или решение
Вопрос, который вы поднимаете, касается классификации целевой переменной с несколькими возможными ответами. Рассмотрим это с точки зрения машинного обучения, учитывая вашу таблицу с целевой переменной, содержащей дубликаты имен (например, «Joseph» и «Joe»).
Понимание классификации
Многоклассовая и многометочная классификация
Ваши данные содержат различные возможные значения для одной целевой переменной. Если вы хотите, чтобы модель могла предсказывать одно имя при условии, что это имя находится в заданном наборе (например, «Joseph» или «Joe»), вы имеете дело с многометочной классификацией. Однако, если ваша модель будет предсказывать только одно имя, признавая, что это может быть одно из нескольких верных ответов, это будет многоклассовая классификация.
-
Многоклассовая классификация: это задача, где каждое наблюдение относится к одной из нескольких возможных категорий. Например, если у вас есть имена, то модель предсказывает одно из них (например, только «Joseph»).
-
Многометочная классификация: эта классификация позволяет одному наблюдению относиться к нескольким категориям одновременно. Эта модель могла бы предсказывать как «Joseph», так и «Joe», и оценивать, является ли хотя бы одно из них правильным.
Определение задачи
В вашем случае уместнее всего говорить о многометочной задаче, так как существует несколько верных ответов для каждой записи. Однако выбор подхода (многоклассовая против многометочной) также зависит от вашей стратегии оценки.
Выбор модели
Если вы решите использовать многометочную классификацию, вам подойдет одна из моделей, поддерживающих этот подход, такие как:
- Случайный лес: хорошо работает с категориями и может быть легко настроен.
- Градиентный бустинг: особенно эффективен для сложных наборов данных.
- Многоклассовая логистическая регрессия: может быть полезна, если классы четко разделены.
Оценка производительности
Как вы уже отметили, разница между предсказанием и оценкой заключается в методах, используемых для проверки корректности модели. Например, можно реализовать собственный метод оценки, который будет учитывать предсказание как корректное, если хотя бы одна из предсказанных категорий присутствует в заданном наборе ответов.
Заключение
Ваши данные и контекст требуют выбора модели, подходящей для решения многометочной классификации, так как вы хотите учитывать все возможные варианты. Важно помнить о том, что разработка собственной стратегии оценки будет критически важной для успеха вашей модели в реальных сценариях.
Таким образом, правильный выбор термина и модели поможет вам максимально использовать возможности ваших данных в машинном обучении.