2010-09-06 4 views
5

Я начинаю использовать NaiveBayes/Simple классификатор для классификации (Weka), однако у меня есть некоторые проблемы, которые нужно понимать при обучении данных. Набор данных, который я использую, - weather.nominal.arff.интерпретация результатов Наивного Байеса

alt text

В то время как я использую использовать тест обучения из вариантов, результат Классификатор:

Correctly Classified Instances 13 - 92.8571 %  
Incorrectly Classified Instances 1 - 7.1429 % 

a b classified as 
9 0 a =yes 
1 4 b = no 

Мой первый вопрос, что я должен понять из неправильных классифицированных случаев? Почему возникла такая проблема? какая коллекция атрибутов классифицирована некорректно? есть ли способ понять это?

Во-вторых, когда я пытаюсь проверить 10-кратный крест, почему я получаю разные (менее) правильно классифицированные экземпляры?

Результаты:

Correctly Classified Instances   8    57.1429 % 
Incorrectly Classified Instances   6    42.8571 % 

a b <-- classified as 
7 2 | a = yes 
4 1 | b = no 

ответ

8

Вы можете получить индивидуальные предсказания для каждого экземпляра, выбрав эту опцию из:

Еще ...> Выходные предсказания> PLAINTEXT

Что даст вам в дополнение к показателям оценки, следующее:

=== Predictions on training set === 

inst#  actual predicted error prediction 
    1  2:no  2:no  0.704 
    2  2:no  2:no  0.847 
    3  1:yes  1:yes  0.737 
    4  1:yes  1:yes  0.554 
    5  1:yes  1:yes  0.867 
    6  2:no  1:yes + 0.737 
    7  1:yes  1:yes  0.913 
    8  2:no  2:no  0.588 
    9  1:yes  1:yes  0.786 
    10  1:yes  1:yes  0.845 
    11  1:yes  1:yes  0.568 
    12  1:yes  1:yes  0.667 
    13  1:yes  1:yes  0.925 
    14  2:no  2:no  0.652 

, который указывает, что 6-й экземпляр был классифицирован неправильно. Обратите внимание, что даже если вы тренируетесь и тестируете одни и те же экземпляры, ошибочные классификации могут возникать из-за несоответствий в данных (самый простой пример - два экземпляра с одинаковыми функциями, но с разными метками класса).

Имейте в виду, что вышеуказанный способ тестирования является предвзятым (его несколько обманывает, так как он может видеть ответы на вопросы). Таким образом, мы обычно заинтересованы в получении более реалистичной оценки ошибки модели для невидимых данных. Cross-validation - одна из таких методик, где она разбивает данные на 10 стратифицированных складок, выполняя тестирование на одной сцене, одновременно тренируясь на остальных девяти, и, наконец, сообщает среднюю точность в течение десяти пробегов.

+0

спасибо за ясный ответ и совет weka + 1. смущающая точка предвзятая, что вы имеете в виду? Должен ли я всегда использовать перекрестную проверку для всех моих разных алгоритмов классификации? – berkay

+4

подумайте об этом, вы хотите узнать сеть Naive Bayes, которая моделирует ваши данные, а затем вы хотите проверить ее точность предсказания. Если вы тренируете модель и проверяете ее в одном и том же наборе экземпляров, вы переоцениваете ее точность (они видели, что эти конкретные примеры, таким образом, хорошо работают на них), но, вероятно, будут менее успешными в отношении новых данных. Ключевым моментом здесь является ** обобщение **: мы хотим обобщить за пределами случаев, которые были предоставлены в «время обучения» новым невидимым примерам. – Amro

+0

Amro спасибо за четкие ответы. Я размещаю здесь, чтобы задать вопрос отзыва и точность результатов перекрестной проверки. (7/(2 + 7)) = 0778, а точность равна (1/(1 + 4)) = 0,2, однако weka говорит для точности = 0,636? любая идея об этом? – berkay