Как использовать функцию выбора соотношения шансов с помощью Наивного байесовского классификатора - PullRequest
2 голосов
/ 10 октября 2011

Я хочу классифицировать документы (составленные из слов) на 3 класса (Положительный, Отрицательный, Неизвестный / Нейтральный).Подмножество слов документа становится функциями.

До сих пор я программировал наивный байесовский классификатор, используя в качестве селектора функций сбор информации и статистику хи-квадрат.Теперь я хотел бы посмотреть, что произойдет, если я использую отношение шансов в качестве селектора функций.

Моя проблема в том, что я не знаю, как реализовать отношение шансов.Должен ли я:

1) Рассчитать коэффициент вероятности для каждого слова w, каждого класса: Например, для w:

   Prob of word as positive Pw,p = #positive docs with w/#docs
   Prob of word as negative Pw,n = #negative docs with w/#docs
   Prob of word as unknown Pw,u = #unknown docs with w/#docs

   OR(Wi,P) = log( Pw,p*(1-Pw,p) / (Pw,n + Pw,u)*(1-(Pw,n + Pw,u)) ) 
   OR(Wi,N) ...
   OR(Wi,U) ...

2) Как мне решить, выбрать ли я слово какособенность?

Заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 31 декабря 2015

Поскольку мне потребовалось некоторое время, чтобы самостоятельно обернуть голову вокруг всего этого, позвольте мне объяснить мои выводы здесь на благо человечества.

Использование отношения шансов (log) является стандартной техникой для фильтрации функцийдо текстовой классификации.Это «односторонняя метрика» [Zheng et al., 2004] в том смысле, что она обнаруживает только признаки, которые положительно коррелируют с конкретным классом.В качестве отношения log-odds для вероятности увидеть функцию 't', заданную для класса 'c', она определяется как:

LOR(t,c) = log [Pr(t|c) / (1 - Pr(t|c))] : [Pr(t|!c) / (1 - Pr(t|!c))]
= log [Pr(t|c) (1 - Pr(t|!c))] / [Pr(t|!c) (1 - Pr(t|c))]

Здесь я использую '! C' для обозначения документа, в которомкласс не c.

Но как вы на самом деле рассчитываете Pr (t | c) и Pr (t |! C)?

Одна тонкость, на которую следует обратить внимание, заключается в том, что вероятности выбора признаков, как правило, обычно определяются по модели событий документа [McCallum & Nigam 1998, Manning et al.2008], т. Е. Pr (t | c) - это вероятность увидеть термин t один или несколько раз в документе, учитывая, что класс документа равен c (другими словами, наличие t при условиикласс в).Оценка максимального правдоподобия (MLE) этой вероятности будет представлять собой долю документов класса c, которые содержат t хотя бы один раз.[Технически, это известно как многомерная модель событий Бернулли и отличается от модели событий с многочленами над словами, которая вычисляет Pr (t | c) с использованием целочисленных подсчетов слов - для получения более подробной информации см. Статью МакКаллума или учебник Мэннинга по IR.в частности, о том, как это применяется к наивному байесовскому текстовому классификатору.]

Одним из ключей к эффективному использованию LOR является сглаживание этих оценок условной вероятности, поскольку, как отметил @yura, редкие событияздесь проблематично (например, MLE Pr (t |! c) может быть нулевым, что приводит к бесконечному LOR).Но как нам сгладить?

В литературе Форман сообщает о сглаживании LOR, «добавляя единицу к любому нулевому числу в знаменателе» (Forman, 2003), в то время как Чжэн и др. (2004) используют «ELE [Ожидаемая оценка вероятности] «сглаживание», которое обычно равняется добавлению 0,5 к каждому счету.

Для сглаживания таким образом, который согласуется с теорией вероятностей, я следую стандартным методам классификации текста с использованием модели событий Бернулли с несколькими переменными.По сути, мы предполагаем, что мы видели каждый счет присутствия И каждый отсчет отсутствия B дополнительные разы.Таким образом, наша оценка Pr (t | c) может быть записана в терминах # (t, c): сколько раз мы видели t и c, а # (t,! C): сколько раз мымы видели t без c следующим образом:

Pr(t|c) = [#(t,c) + B] / [#(t,c) + #(t,!c) + 2B]
 = [#(t,c) + B] / [#(c) + 2B]

Если B = 0, мы имеем MLE.Если B = 0.5, у нас есть ELE.Если B = 1, у нас есть предшествующий лапласиан.Обратите внимание, что это выглядит иначе, чем сглаживание для модели событий с многочленами, где предшествующий лапласиан приводит вас к добавлению | V |в знаменателе [McCallum & Nigam, 1998]

Вы можете выбрать 0.5 или 1 в качестве значения сглаживания, в зависимости от того, какая предыдущая работа вас больше всего вдохновляет, и включить это в уравнение для LOR(t,c)выше, и оцените все функции.

Как правило, вы затем решаете, сколько функций вы хотите использовать, скажем, N, а затем выбираете N функций с самым высоким рейтингом на основе оценки.

В условиях с несколькими классами люди часто использовали 1 против всех классификаторов и, таким образом, делали выбор функции независимо для каждого классификатора и, следовательно, каждого положительного класса с односторонними метриками (Forman, 2003).Однако, если вы хотите найти уникальный сокращенный набор функций, который работает в мультиклассовой среде, в литературе есть несколько продвинутых подходов (например, Chapelle & Keerthi, 2008).

Ссылки:

Zheng, Wu, Srihari, 2004

McCallum & Nigam 1998

Manning, Raghavan & Schütze, 2008

Forman, 2003

Chapelle& Keerthi, 2008

2 голосов
/ 10 октября 2011

Нечетное соотношение не является хорошей мерой для выбора функции, потому что оно показывает только то, что происходит, когда функция присутствует, и ничего, когда это не так.Таким образом, он не будет работать для редких функций, и почти все функции редки, поэтому он не работает почти для всех функций.Пример характеристики со 100% уверенностью, что класс положительный, который присутствует в 0,0001 бесполезен для классификации.Поэтому, если вы все еще хотите использовать нечетное соотношение, добавьте пороговое значение для частоты функции, например, функция присутствует в 5% случаев.Но я бы порекомендовал лучший подход - использовать показатели Чи или получения информации, которые автоматически решают эти проблемы.

...