Классификатор для неопределенных меток классов

11

Допустим, у меня есть набор экземпляров с ассоциированными метками классов. Неважно, как эти экземпляры были помечены, но насколько точно их членство в классе. Каждый экземпляр принадлежит ровно одному классу. Допустим, я могу количественно определить достоверность каждого членства в классе с помощью номинального атрибута, который изменяется от 1 до 3 (от очень определенного до неопределенного, соответственно).

Существует ли какой-то классификатор, который учитывает такую ​​меру определенности, и если да, доступен ли он в наборе инструментов WEKA?

Я полагаю, что такая ситуация возникает довольно часто, например, когда случаи классифицируются людьми, которые не всегда полностью уверены. В моем случае я должен классифицировать изображения, и иногда изображение может принадлежать более чем одному классу. Если это произойдет, я даю классу большую неопределенность, но все же классифицирую его только с одним классом.

Или есть другие подходы к этой проблеме, без специализированного классификатора? Например, принимая только "определенные" классификации для обучения? Я боюсь, что в этом случае будет больше ошибочных классификаций, потому что «пограничные» случаи не охватываются.

wnstnsmth
источник
1
Каждая запись принадлежит только одному классу? Или возможно, что какая-то запись принадлежит классу 12 с уверенностью 1 и классу 34 с уверенностью 2?
user31264
В данном случае каждая запись принадлежит ровно одному классу.
13

Ответы:

8

Прежде всего, как уже объяснял @Marc Claesen, классификация под наблюдением - это один из методов, позволяющих позаботиться о ситуации, когда вы знаете, что классы действительно различны, но вы не уверены, к какому классу на самом деле относится данный случай.

Тем не менее, есть и связанные ситуации, когда «реальность» не так ясна, и предположение о наличии действительно различных классов не выполняется: пограничные случаи могут быть «физической» реальностью (см. Ниже статьи о приложении где мы встретили такое условие).

Существует одно критическое предположение для полуконтролируемых классификаторов, которое необходимо убедиться, что оно выполнено: допущение, что в пространстве признаков границы классов сопровождаются низкой плотностью выборки . Это называется предположением кластера.
Даже если реальность, лежащая в основе ваших данных, имеет разные классы, в вашем наборе данных может быть непропорционально больше пограничных случаев: например, если ваша методика классификации нацелена на классификацию трудных случаев, тогда как ясные и простые случаи не представляют интереса, и уже ваши данные обучения отражают это ситуация.

только принимая "определенные" классификации для обучения? Я боюсь, что в этом случае будет больше ошибочных классификаций, потому что «пограничные» случаи не охватываются.

Я полностью согласен с вами, что исключение пограничных случаев часто является плохой идеей: удаляя все сложные случаи, вы сталкиваетесь с искусственно легкой проблемой. ИМХО, еще хуже, что исключение пограничных случаев обычно не заканчивается обучением модели, но пограничные случаи также исключаются из тестирования, таким образом, тестирование модели только в простых случаях. При этом вы даже не поймете, что модель плохо работает с пограничными случаями.

Вот две статьи, которые мы написали о проблеме, которая отличается от вашей тем, что в нашем приложении реальность также может иметь «смешанные» классы (более общая версия вашей проблемы: неопределенность в ссылочных метках также покрыта).

Ссылки ведут на страницу проекта пакета R, который я разработал для расчета производительности. Есть дополнительные ссылки и на официальную веб-страницу, и на мои рукописи из газет. Пока я не использовал Weka, но понимаю, что интерфейс для R доступен .


практические соображения:

  • Хотя подход «копировать и метить по-другому» прост, он не очень хорошо работает на практике со всеми классификаторами и реализациями. Например, AFAIK нет способа сообщить libSVMнастройке путем перекрестной проверки, что все копии каждой точки данных должны храниться в одной и той же папке перекрестной проверки. Таким образом, libSVMнастройка s, вероятно, дала бы в значительной степени подходящую модель.
  • Также для логистической регрессии я обнаружил, что во многих реализациях не разрешены метки частичного членства, которые мне нужны.
  • Реализация, которую я использовал для работ выше, на самом деле представляет собой ANN без скрытого слоя, использующего логистику в качестве сигмоидальной функции связи ( nnet::multinom).
cbeleites недоволен SX
источник
Ваше первое практическое соображение, хотя и верно, не относится, libsvmв частности. В libsvmавторы предлагают альтернативную версию каждого выпуска , в котором экземпляр взвешенных по классификации возможно, избежать этой проблемы в целом. Именно такие вещи заставляют меня обычно использовать библиотеки алгоритмов напрямую, а не обертки, такие как Weka / scipy / ... csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances
Марк Клезен,
@MarcClaesen: спасибо - я этого не видел. Но разве вам не нужно указывать два экземпляра одного и того же случая, один из которых, скажем, взвешенный, соответствует 1/3 класса А, а другой - 2/3 класса В? В любом случае, отсутствие необходимости предоставлять много копий открытых случаев сделает настройку менее проблематичной (для моих данных мне в любом случае придется выполнить разделение настройки внешне, поскольку у меня есть «иерархическая» структура данных с несколькими измерениями реальных случаев). )
cbeleites недоволен SX
@cbeiteles, когда экземпляр может принадлежать нескольким классам, вам действительно нужно будет предоставить его несколько раз, даже с этим взвешиванием экземпляра. Я не рассматривал эту возможность.
Марк Класен
6

Это одно из обобщений классификации, которые рассматриваются в обучении под наблюдением. Если у вас есть мера уверенности, вы можете использовать подходы, которые позволяют взвешивать учебные случаи. Чем выше достоверность, тем больше вес соответствующего экземпляра. Примеры таких подходов включают взвешенный по экземпляру SVM и логистическую регрессию.

Я уверен, что у weka есть реализации этих алгоритмов. Если все остальное терпит неудачу, выборка нескольких экземпляров из экземпляров с высокой достоверностью. Вы можете использовать этот подход для традиционных SVM или LR.

Пример: SVM

Если я не ошибаюсь, у weka есть интерфейсы к LIBSVM . LIBSVM позволяет вам решать взвешенные по классам SVM во всех своих выпусках и взвешенные по экземплярам SVM в специальных версиях каждого выпуска. Я собираюсь предположить, что weka не поддерживает последнее (что вам нужно).

Взвешенный в классе SVM минимизирует следующую целевую функцию: с разделяющей гиперплоскостью в пространстве признаков, переменные слабины (которые моделируют ошибочную классификацию обучения) и и набор опорных векторов, принадлежащих положительному и отрицательному классу соответственно. Используя веса и вы можете назначать разные штрафы за неправильную классификацию между классами.

минвес,ξ| |вес| |2+СпоsΣяпξя+СNегΣяNξя,
весξпNСпоsСNег

Исходя из вашего вопроса, кажется, что вы в идеале хотели бы использовать 6 различных весов (2 класса 3 уровня уверенности). Вы можете добиться этого для многих подходов, дублируя образцы точек с высокой степенью достоверности.×

Например, с точки зрения SVM, использование одного и того же экземпляра данных дважды дает идентичное решение для удвоения связанного с ним значенияЭто очень простой способ назначить высокие штрафы за неправильную классификацию определенным экземплярам данных. Вы можете использовать тот же подход для логистической регрессии.С

Марк Клазен
источник
(+1) это оно! Дублируя экземпляры с разными метками и весами экземпляров (также известными как метки), можно также применять алгоритмы, такие как случайные леса, наивный байесовский метод и т. Д. Веса экземпляров настолько распространены, что у weka должны быть учащиеся, которые его поддерживают. Rapidminer (конкурент weka) делает. Установив достоверность 1, можно даже смоделировать «четкие» проблемы с несколькими метками.
Штеффен
Вы правы, WEKA поддерживает LIBSVM, но не поддерживает взвешивание экземпляров. Я думаю, что идея дублирования экземпляров очень хорошая, особенно потому, что с этим может справиться каждый «традиционный» ученик.
13
2

Сложность проблемы сильно зависит от того, насколько ошибочными могут быть неопределенные метки. Если неопределенные метки верны, скажем, в 90% случаев, вы, вероятно, можете избежать неприятностей, просто используя логистическую регрессию. С другой стороны, если ярлыки неправильны почти половину времени, вам, возможно, придется прибегнуть к некоторым специальным методам. Вот один удар, который я предпринял при очень похожей проблеме. (У нас было несколько наблюдений на этикетку, но в остальном настройки очень похожи.)

Стефан Вейджер
источник
-5

У меня был краткий опыт распознавания и классификации изображений.

Случайные леса - это простая в использовании техника. Я реализовал его на R, он должен быть доступен и на Weka. Простота использования превосходит точность прогноза. Если у вас достаточно большой тренировочный набор, он может классифицировать несколько меток.

Он работал для распознавания рукописных цифр довольно хорошо, но если ваши изображения более сложные, то только пробная версия покажет вам, хорошо ли это.

Арун Хосе
источник
4
Какое это имеет отношение к неопределенным меткам классов?
13