Как рассчитывается столбец "прогноз" в выходных данных Weka Naive Bayes?

Я выполнил наивную байесовскую классификацию, используя 10-кратную перекрестную проверку, получив прогноз таблицы по данным испытаний, который выглядит следующим образом:

=== Predictions on test data ===

   inst#     actual  predicted   error  prediction      (name)
     1    3:no_chang 3:no_chang           0.943       (region_1)
     2    1:active_K 1:active_K           1           (region_2)
     3    3:no_chang 3:no_chang           0.912       (region_3)
     4    3:no_chang 3:no_chang           0.858       (region_4)
     5    3:no_chang 2:active_G   +       0.518       (region_5)

Я хочу знать, как рассчитывается столбец "прогноз". Я знаю, что оно изменяется от 0 до 1, что означает, что предсказание "лучше", но это все, что я смог найти после значительного времени поиска в Google и просмотра книги Weka.

Я знаю, что есть много информации о Weka онлайн, но я немного ошеломлен этим и не могу легко найти ответ на мой простой вопрос. Кроме того, кто-то может указать мне хорошее подробное руководство по weka для пользователя командной строки? Книга Weka, кажется, слишком сосредоточена на объяснении того, как работает GUI, что меня не особо интересует, так как сейчас я в основном работаю с инструментами командной строки.

Спасибо,

Juan

1 ответ

Глядя на исходный код для NaiveBayes класс, есть переменная с именем m_ClassDistribution который отслеживает предсказание класса.

На этапе обучения эта переменная обновляется для отражения априорной вероятности каждого класса. Он используется на этапе тестирования для расчета апостериорной вероятности того, что данный образец относится к данному классу.

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

Другие вопросы по тегам