Как выполнить классификацию текста с вероятностями метки?

Я пытаюсь решить проблему классификации текста в академических целях. Мне нужно разделить твиты на такие ярлыки, как «облако», «холодный», «сухой», «горячий», «влажный», «ураган», «лед», «дождь», «снег», «шторм», « ветер »и« прочее ». Каждый твит в обучающих данных имеет вероятности против всех ярлыков. Произнесите сообщение: «Уже могу сказать, что это будет тяжелый день. Сейчас так же ветрено, как и вчера днем». имеет 21% шанс быть горячим и 79% шансом ветра. Я работал над проблемами классификации, которая предсказывает, будет ли ветер, или жарко, или другие. Но в этой задаче у всех обучающих данных есть вероятности по всем меткам. Раньше я использовал наивный байесовский классификатор mahout, который для построения модели использует конкретную метку для данного текста. Как преобразовать эти входные вероятности для различных меток в качестве входных данных для любого классификатора?


person Suren Raju    schedule 07.10.2013    source источник
comment
Итак, я понимаю: ваши данные состоят из твитов и вектора вероятностей, указывающих вероятность того, что каждый твит принадлежит нескольким ярлыкам («горячий», «холодный» и т. Д.), И вы намерены предсказать эти вероятности для невидимых твитов?   -  person Mike    schedule 07.10.2013
comment
Привет, Майк, Спасибо за ответ. Вы совершенно правы. Мне нужно предсказать вероятность появления новых твитов.   -  person Suren Raju    schedule 07.10.2013
comment
Окей круто. Как вы оцениваете работу предсказателя?   -  person Mike    schedule 07.10.2013
comment
Привет Майк. Допускаются минимальные отклонения (скажем, 1% или 2%). Например, 10% шанс быть горячим в тестовых данных, должно быть нормально, если модель предсказывает 9% или 11% шанс быть горячим. Для этого буду писать собственный код. Ограничений по производительности нет. Хотелось бы, чтобы он работал с минимальными отклонениями в результате прогноза.   -  person Suren Raju    schedule 07.10.2013
comment
Не оценивайте так - используйте расхождение KL между предсказанным распределением и правильным. В теории обучения это известно как потеря кросс-энтропии. У него есть те свойства, которые вам нужны (близкое расположение вас сильно не накажет), но оно плавное и может быть нацелено на оптимизацию, когда вы дойдете до этого.   -  person Ben Allison    schedule 07.10.2013


Ответы (2)


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

Есть естественный способ включить это: например, в Наивном Байесе при оценке параметров в ваших моделях вместо того, чтобы каждое слово получало счет в единицу для класса, к которому принадлежит документ, оно получает счет вероятности < / em>. Таким образом, документы с высокой вероятностью принадлежности к классу вносят больший вклад в параметры этого класса. Ситуация в точности эквивалентна изучению модели смеси многочленов с использованием EM, где вероятности, которые у вас есть, идентичны переменным принадлежности / индикатора для ваших экземпляров.

В качестве альтернативы, если ваш классификатор был нейронной сетью с выходом softmax, вместо целевого выхода, представляющего собой вектор с одним [1] и множеством нулей, целевой выход становится вектором вероятности, который вам предоставляется.

К сожалению, я не знаю ни одной стандартной реализации, которая позволила бы вам реализовать эти идеи.

person Ben Allison    schedule 07.10.2013

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

Vowpal Wabbit - один из таких учеников, который поддерживает многоклассовую классификацию с весами экземпляров.

person Rob Neuhaus    schedule 07.10.2013