Как рассчитывается столбец прогноза в выходных данных 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, 1 означает, что прогноз «лучше», но это все, что я смог найти после значительного времени поиска в Google и просмотра книги Weka.

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

Спасибо,

Хуан


person juanragv    schedule 01.03.2012    source источник
comment
Ну, я уверен, если вы используете это, вы знаете, как работает классификатор NB...? если это так, вы должны понимать, что классификатор NB не делает абсолютных прогнозов из-за его вероятностной основы. Таким образом, я бы предположил, что значение прогноза — это вероятность этой классификации, связанной с этой точкой. При превышении определенного порога классификатор определяет, что это правильная классификация, и присваивает метку.   -  person im so confused    schedule 04.10.2012
comment
inf.ed.ac.uk/teaching/ Courses/inf2b/learnSlides/ – это теоретическое руководство по наивной байесовской классификации. Не уверен, что это именно то, что вы ищете.   -  person William M-B    schedule 27.11.2012


Ответы (1)


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

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

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

person Abbas    schedule 29.11.2012