как вычисляется PcGw в наивном байесовском квантовании? - PullRequest
0 голосов
/ 07 февраля 2019

Рассмотрим обычный пример, который повторяет пример из 13.1 из An Introduction to Information Retrieval https://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf

txt <- c(d1 = "Chinese Beijing Chinese",
         d2 = "Chinese Chinese Shanghai",
         d3 = "Chinese Macao",
         d4 = "Tokyo Japan Chinese",
         d5 = "Chinese Chinese Chinese Tokyo Japan")

trainingset <- dfm(txt, tolower = FALSE)
trainingclass <- factor(c("Y", "Y", "Y", "N", NA), ordered = TRUE)

tmod1 <- textmodel_nb(trainingset, y = trainingclass, prior = "docfreq")

Согласно документам, PcGw - это posterior class probability given the word.Как это вычисляется?Я думал, что мы заботились о другом, то есть P(word / class).

> tmod1$PcGw
       features
classes   Chinese   Beijing  Shanghai     Macao     Tokyo     Japan
      N 0.1473684 0.2058824 0.2058824 0.2058824 0.5090909 0.5090909
      Y 0.8526316 0.7941176 0.7941176 0.7941176 0.4909091 0.4909091

Спасибо!

1 Ответ

0 голосов
/ 07 февраля 2019

Приложение четко объяснено в главе книги, которую вы цитируете, но по сути различие состоит в том, что PcGw - это «вероятность того, что класс дано слову», а PwGc - это «вероятность того, что слово дано данному классу».Первый - это апостериор и то, что нам нужно для вычисления вероятности принадлежности к классу для группы слов, используя общую вероятность (в quanteda , это применяется с использованием функции predict()).Последнее просто является вероятностью, которая исходит из относительных частот объектов в каждом классе, сглаженных по умолчанию путем добавления единицы к количеству по классам.

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

trainingset_bygroup <- dfm_group(trainingset[1:4, ], trainingclass[-5]) %>%
    dfm_smooth(smoothing = 1)
trainingset_bygroup
# Document-feature matrix of: 2 documents, 6 features (0.0% sparse).
# 2 x 6 sparse Matrix of class "dfm"
#     features
# docs Chinese Beijing Shanghai Macao Tokyo Japan
#    N       2       1        1     1     2     2
#    Y       6       2        2     2     1     1

Затем вы можете видеть, что (сглаженные) вероятности слова совпадают с PwGc.

trainingset_bygroup / rowSums(trainingset_bygroup)
# Document-feature matrix of: 2 documents, 6 features (0.0% sparse).
# 2 x 6 sparse Matrix of class "dfm"
#     features
# docs   Chinese   Beijing  Shanghai     Macao      Tokyo      Japan
#    N 0.2222222 0.1111111 0.1111111 0.1111111 0.22222222 0.22222222
#    Y 0.4285714 0.1428571 0.1428571 0.1428571 0.07142857 0.07142857

tmod1$PwGc
#        features
# classes   Chinese   Beijing  Shanghai     Macao      Tokyo      Japan
#       N 0.2222222 0.1111111 0.1111111 0.1111111 0.22222222 0.22222222
#       Y 0.4285714 0.1428571 0.1428571 0.1428571 0.07142857 0.07142857

Но вы, вероятно, больше заботитесь о P (class | word), поскольку именно в этом заключается формула Байеса, которая включает вероятности предшествующего класса P (c).

...