Вопрос или проблема
У меня есть гипотетический сценарий, в котором у меня есть 100 классификаторов, к которым, если ввести имя человека, они вернут класс для этого человека.
Например.
Ввод1 –Дональд Трамп
30 из 100 классификаторов возвращают политик
в качестве класса
20 из 100 классификаторов возвращают бизнесмен
в качестве класса
10 из 100 классификаторов возвращают лидер
в качестве класса
10 из 100 классификаторов возвращают американец
в качестве класса
10 из 100 классификаторов возвращают республиканец
в качестве класса
10 из 100 классификаторов возвращают спортсмен
в качестве класса
3 из 100 классификаторов возвращают священник
в качестве класса
3 из 100 классификаторов возвращают врач
в качестве класса
2 из 100 классификаторов возвращают инженер
в качестве класса
1 из 100 классификаторов возвращает индиец
в качестве класса
1 из 100 классификаторов возвращает спортсмен
в качестве класса
В вышеупомянутом случае я беру 10 голосов как порог, я могу в некоторой степени правильно определить Дональда Трампа, хотя определение спортсмен
может быть ошибочным. Тем не менее, 10 кажется достойным порогом
Ввод2 –Криштиану Роналду
20 из 100 классификаторов возвращают спортсмен
в качестве класса
20 из 100 классификаторов возвращают футболист
в качестве класса
13 из 100 классификаторов возвращают реал мадрид
в качестве класса
13 из 100 классификаторов возвращают манчестер юнайтед
в качестве класса
12 из 100 классификаторов возвращают ювентус
в качестве класса
12 из 100 классификаторов возвращают европеец
в качестве класса
2 из 100 классификаторов возвращают португалец
в качестве класса
2 из 100 классификаторов возвращают крикетист
в качестве класса
2 из 100 классификаторов возвращают американец
в качестве класса
2 из 100 классификаторов возвращают китаец
в качестве класса
2 из 100 классификаторов возвращают кореец
в качестве класса
В приведенном выше примере, если я возьму 12 голосов как порог, он правильно определяет Криштиану Роналду, хотя мы могли бы пропустить тег португалец
, так как его голос всего 2. Тем не менее, я думаю, что мы делаем хорошую работу здесь.
Моя проблема заключается в том, что если у меня есть API, который возвращает голоса и классы известных людей таким образом, какой лучший математический подход для динамического поиска наилучшего порогового значения, выше которого я могу сказать, что определение верно, а ниже которого необходимо дополнительно проверить, корректны ли классы
какой лучший математический подход для динамического поиска наилучшего порогового значения, выше которого я могу сказать, что определение верно, а ниже которого необходимо дополнительно проверить, корректны ли классы
Во-первых, в общем, ясно, что нет способа быть уверенным, что ответ верен или неверен: например, если по какой-то причине все классификаторы возвращают один и тот же неправильный ответ, тогда условие порога выполнено, но ответ неверен.
Теперь единственный способ найти оптимальный порог для определения, является ли ответ приемлемым, использовать набор размеченных примеров для оценки ответов классификаторов. Почему? Потому что правильность ответов нельзя определить никакой математической формулой.
Таким образом, цель игры – оценить, в какой степени этот набор классификаторов может быть доверен для получения правильного ответа, и это зависит от порога. Таким образом, порог является параметром предсказательной системы, и этот параметр можно оценить (настроить) на основе некоторых данных валидации. Основной метод состоит в том, чтобы попробовать все возможные значения для параметра, оценить производительность в каждом случае и выбрать значение, которое обеспечивает наивысшую производительность. Обратите внимание, что для такого сценария существует множество возможных оценочных мер: мера должна быть выбрана тщательно в зависимости от цели системы (например, лучше ли иметь один ложноположительный ответ или ложный отрицательный?).
Если вы обнаружите, что классы в какой-то мере коррелируют (например, быть политиком и бизнесменом крайне вероятно означает быть лидером), то вы можете воспользоваться этими статистическими правилами для обхода или последующей модификации голосов.
В противном случае, я думаю, что лучшее, что вы можете сделать, это установить статический порог, который обеспечит вам наилучшее сочетание точности и полноты.
Ответ или решение
В контексте работы с множеством классификаторов, задача оптимального определения пороговых значений для категоризации по результатам голосования действительно представляет собой сложную математическую и статистическую задачу. Рассмотрим более детально различные подходы, которые могут помочь в нахождении наилучшего порога.
Понимание контекста
В рамках гипотетического сценария, где мы имеем своих 100 классификаторов, каждый из которых может давать разные результаты по одной и той же входной строке (имя человека), необходимо учитывать, что ни одна система классификации не может гарантировать абсолютную точность. Однако, нашими задачами могут быть:
- Определение правильных классов с минимальным количеством ошибочных классификаций.
- Максимизация точности и полноты (precision and recall) результатов.
Математические алгоритмы для нахождения порога
1. Использование валидационного набора данных
Для начала поможет использование обучающих и валидационных наборов данных. На этих наборах можно использовать алгоритмы кросс-валидации, чтобы оценить, как меняется качество классификации в зависимости от порога.
- Кросс-валидация: Разделите ваши данные на n частей, используя n-1 для обучения и одну для валидации, повторите для всех частей.
- На каждом шаге необходимо тестировать разные значения порога, например, от 1 до 30, и фиксировать результаты (точность, полноту, F1-меру).
2. ROC-кривая и AUC
Для выбора оптимального порога можно использовать ROC (Receiver Operating Characteristic) кривую и вычислять AUC (Area Under the Curve). Это даст вам визуальную оценку производительности классификаторов по различным пороговым значениям.
- Постройте график, где по оси X откладывается уровень ложных срабатываний (FPR), а по оси Y — истинные положительные результаты (TPR).
- Определите точку, которая максимизирует TPR и минимизирует FPR, что в свою очередь укажет вам на оптимальный порог.
3. Метрики сбалансированности
Также можно использовать такие метрики, как F-score, которая является гармоническим средним точности и полноты. Можно изменять порог до тех пор, пока значение F-score не будет максимально.
Динамическая настройки порога
При работе в реальном времени данные могут меняться, что требует динамической настройки порога. Вот несколько подходов:
- Алгоритмы адаптивного обучения: Используйте системы, которые могут автоматически подстраивать пороговые значения, основываясь на новых данных и предыдущих ошибках классификации.
- Кластеризация голосов: Если вы заметили, что определённые классы голосуют меньшинством, это может быть выявлено с помощью алгоритмов кластеризации, таких как K-means, чтобы объединить схожие классы перед выбором окончательного.
Заключение
Определение оптимального порога для классификаций является важным этапом в понимании и улучшении качества автоматических классификаторов. Используя описанные методы и подходы, можно значительно улучшить точность и адекватность классификаций, а также минимизировать количество неверных ответов. Это требует балансировки между сложностью модели и ее интерпретируемостью. Наблюдение за качеством системы в динамике позволит выявить аномалии и быстро реагировать на изменения в исправности классификации.