Допустим, у меня есть набор экземпляров с ассоциированными метками классов. Неважно, как эти экземпляры были помечены, но насколько точно их членство в классе. Каждый экземпляр принадлежит ровно одному классу. Допустим, я могу количественно определить достоверность каждого членства в классе с помощью номинального атрибута, который изменяется от 1 до 3 (от очень определенного до неопределенного, соответственно).
Существует ли какой-то классификатор, который учитывает такую меру определенности, и если да, доступен ли он в наборе инструментов WEKA?
Я полагаю, что такая ситуация возникает довольно часто, например, когда случаи классифицируются людьми, которые не всегда полностью уверены. В моем случае я должен классифицировать изображения, и иногда изображение может принадлежать более чем одному классу. Если это произойдет, я даю классу большую неопределенность, но все же классифицирую его только с одним классом.
Или есть другие подходы к этой проблеме, без специализированного классификатора? Например, принимая только "определенные" классификации для обучения? Я боюсь, что в этом случае будет больше ошибочных классификаций, потому что «пограничные» случаи не охватываются.
источник
Ответы:
Прежде всего, как уже объяснял @Marc Claesen, классификация под наблюдением - это один из методов, позволяющих позаботиться о ситуации, когда вы знаете, что классы действительно различны, но вы не уверены, к какому классу на самом деле относится данный случай.
Тем не менее, есть и связанные ситуации, когда «реальность» не так ясна, и предположение о наличии действительно различных классов не выполняется: пограничные случаи могут быть «физической» реальностью (см. Ниже статьи о приложении где мы встретили такое условие).
Существует одно критическое предположение для полуконтролируемых классификаторов, которое необходимо убедиться, что оно выполнено: допущение, что в пространстве признаков границы классов сопровождаются низкой плотностью выборки . Это называется предположением кластера.
Даже если реальность, лежащая в основе ваших данных, имеет разные классы, в вашем наборе данных может быть непропорционально больше пограничных случаев: например, если ваша методика классификации нацелена на классификацию трудных случаев, тогда как ясные и простые случаи не представляют интереса, и уже ваши данные обучения отражают это ситуация.
Я полностью согласен с вами, что исключение пограничных случаев часто является плохой идеей: удаляя все сложные случаи, вы сталкиваетесь с искусственно легкой проблемой. ИМХО, еще хуже, что исключение пограничных случаев обычно не заканчивается обучением модели, но пограничные случаи также исключаются из тестирования, таким образом, тестирование модели только в простых случаях. При этом вы даже не поймете, что модель плохо работает с пограничными случаями.
Вот две статьи, которые мы написали о проблеме, которая отличается от вашей тем, что в нашем приложении реальность также может иметь «смешанные» классы (более общая версия вашей проблемы: неопределенность в ссылочных метках также покрыта).
C. Beleites, K. Geiger, M. Kirsch, SB Sobottka, G. Schackert и R. Salzer: Рамановская спектроскопическая классификация тканей астроцитомы: с использованием мягкой справочной информации, Anal. Bioanal. Chem., 400 (2011), 2801 - 2816.
C. Beleites, R. Salzer и V. Sergo:
валидация моделей мягкой классификации с использованием частичного членства в классах: расширенная концепция чувствительности & Co, примененная к классификации астроцитомных тканей
Chemom. Интелл. Лаборатория Syst., 122 (2013), 12 - 22.
Ссылки ведут на страницу проекта пакета R, который я разработал для расчета производительности. Есть дополнительные ссылки и на официальную веб-страницу, и на мои рукописи из газет. Пока я не использовал Weka, но понимаю, что интерфейс для R доступен .
практические соображения:
libSVM
настройке путем перекрестной проверки, что все копии каждой точки данных должны храниться в одной и той же папке перекрестной проверки. Таким образом,libSVM
настройка s, вероятно, дала бы в значительной степени подходящую модель.nnet::multinom
).источник
libsvm
в частности. Вlibsvm
авторы предлагают альтернативную версию каждого выпуска , в котором экземпляр взвешенных по классификации возможно, избежать этой проблемы в целом. Именно такие вещи заставляют меня обычно использовать библиотеки алгоритмов напрямую, а не обертки, такие как Weka / scipy / ... csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instancesЭто одно из обобщений классификации, которые рассматриваются в обучении под наблюдением. Если у вас есть мера уверенности, вы можете использовать подходы, которые позволяют взвешивать учебные случаи. Чем выше достоверность, тем больше вес соответствующего экземпляра. Примеры таких подходов включают взвешенный по экземпляру SVM и логистическую регрессию.
Я уверен, что у weka есть реализации этих алгоритмов. Если все остальное терпит неудачу, выборка нескольких экземпляров из экземпляров с высокой достоверностью. Вы можете использовать этот подход для традиционных SVM или LR.
Пример: SVM
Если я не ошибаюсь, у weka есть интерфейсы к LIBSVM . LIBSVM позволяет вам решать взвешенные по классам SVM во всех своих выпусках и взвешенные по экземплярам SVM в специальных версиях каждого выпуска. Я собираюсь предположить, что weka не поддерживает последнее (что вам нужно).
Взвешенный в классе SVM минимизирует следующую целевую функцию: с разделяющей гиперплоскостью в пространстве признаков, переменные слабины (которые моделируют ошибочную классификацию обучения) и и набор опорных векторов, принадлежащих положительному и отрицательному классу соответственно. Используя веса и вы можете назначать разные штрафы за неправильную классификацию между классами.
Исходя из вашего вопроса, кажется, что вы в идеале хотели бы использовать 6 различных весов (2 класса 3 уровня уверенности). Вы можете добиться этого для многих подходов, дублируя образцы точек с высокой степенью достоверности.×
Например, с точки зрения SVM, использование одного и того же экземпляра данных дважды дает идентичное решение для удвоения связанного с ним значенияЭто очень простой способ назначить высокие штрафы за неправильную классификацию определенным экземплярам данных. Вы можете использовать тот же подход для логистической регрессии.С
источник
Сложность проблемы сильно зависит от того, насколько ошибочными могут быть неопределенные метки. Если неопределенные метки верны, скажем, в 90% случаев, вы, вероятно, можете избежать неприятностей, просто используя логистическую регрессию. С другой стороны, если ярлыки неправильны почти половину времени, вам, возможно, придется прибегнуть к некоторым специальным методам. Вот один удар, который я предпринял при очень похожей проблеме. (У нас было несколько наблюдений на этикетку, но в остальном настройки очень похожи.)
источник
У меня был краткий опыт распознавания и классификации изображений.
Случайные леса - это простая в использовании техника. Я реализовал его на R, он должен быть доступен и на Weka. Простота использования превосходит точность прогноза. Если у вас достаточно большой тренировочный набор, он может классифицировать несколько меток.
Он работал для распознавания рукописных цифр довольно хорошо, но если ваши изображения более сложные, то только пробная версия покажет вам, хорошо ли это.
источник