Как рассчитывается столбец "прогноз" в выходных данных 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
функция, которая используется на этапе тестирования. Он немного отличается от обычного расчета наивного байесовского, поскольку он также учитывает вес, связанный с каждой функцией.