2013-03-21 3 views
1

Я пытаюсь преобразовать результат моего классификатора из классификации экземпляров как 0 или 1, вместо этого дать оценку (меру доверия?), Например, от 0 до 10, Я использую RIDOR но также может также использовать ClassificationViaRegression, RandomForest или AttributeSelectedClassifier так же легко, хотя они также не классифицируются.Преобразование классификатора Weka в оценку

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

Вот пример правил генерироваться:

class = 2 (40536.0/20268.0) 
     Except (fog <= 14.115114) and (polySyllabicWords/Sentence <= 1.973684) and (polySyllabicWords/Sentence <= 1.245) and (Characters/Word > 4.331715) => class = 1 (2309.0/5.0) [1137.0/4.0] 
     Except (fog <= 14.115598) and (polySyllabicWords/Sentence <= 1.973684) and (polySyllabicWords/Sentence > 1.514706) => class = 1 (2281.0/0.0) [1112.0/0.0] 
     Except (fog <= 14.136126) and (Words/Sentence > 19.651515) and (polySyllableCount <= 10.5) and (polySyllabicWords/Sentence > 2.416667) and (Syllables/Sentence <= 34.875) => class = 1 (601.0/0.0) [303.0/6.0] 
     Except (fog <= 14.140863) and (polySyllabicWords/Sentence <= 1.944444) and (polySyllableCount <= 4.5) and (polySyllabicWords/Sentence <= 1.416667) and (wordCount > 29.5) and (Characters/Word <= 4.83156) => class = 1 (333.0/0.0) [152.0/0.0] 
     Except (fog <= 14.142217) and (polySyllabicWords/Sentence <= 1.944444) and (polySyllableCount <= 4.5) and (polySyllabicWords/Sentence <= 1.416667) and (numOfChars > 30.5) and (Syllables/Word <= 1.474937) => class = 1 (322.0/0.0) [174.0/4.0] 
     Except (fog <= 14.140863) and (polySyllabicWords/Sentence <= 1.75) and (polySyllableCount <= 4.5) => class = 1 (580.0/28.0) [298.0/21.0] 
     Except (fog <= 14.141508) and (Syllables/Sentence > 25.585714) and (Words/Sentence > 19.683333) and (sentenceCount <= 4.5) and (polySyllabicWords/Sentence <= 2.291667) and (fog > 12.269468) => class = 1 (434.0/0.0) [202.0/0.0] 
     Except (fog <= 14.140863) and (Syllables/Sentence > 25.866071) and (polySyllableCount <= 16.5) and (fog > 12.793102) and (polySyllabicWords/Sentence <= 2.9) and (wordCount <= 59.5) and (Words/Sentence > 16.166667) and (Words/Sentence <= 24.75) => class = 1 (291.0/0.0) [166.0/0.0] 
     Except (fog <= 14.140863) and (Syllables/Sentence > 25.585714) and (Words/Sentence > 19.630682) and (polySyllabicWords/Sentence > 2.656863) and (polySyllableCount <= 16.5) and (fog > 13.560337) and (Words/Sentence <= 21.55) and (numOfChars <= 523) => class = 1 (209.0/0.0) [93.0/2.0] 
     Except (fog <= 14.147578) and (Syllables/Word <= 1.649029) and (polySyllabicWords/Sentence <= 1.75) and (polySyllabicWords/Sentence > 1.303846) and (polySyllabicWords/Sentence <= 1.422619) and (fog > 9.327132) => class = 1 (183.0/0.0) [64.0/0.0]...... 

Я также не уверен, что означает, что первая линия (40536/20368) - это что просто значит классифицировать его как 2, если не один из следующих правил подать заявление?

Любая помощь очень ценится!

+1

Да, первая строка означает, что классификация по умолчанию должна быть (2), если одно из приведенных ниже правил не является истинным. – etov

ответ

1

Как правило, получение уверенности от классификаторов не считается простой задачей, особенно если вы хотите, чтобы она была откалибрована (например, была представлена ​​как вероятность правильности классификации). Однако существует несколько относительно простых способов получения приблизительных оценок.

С классификаторами, основанными на деревьях и правилах, номера в круглых скобках представляют собой количество правильных/неправильных образцов, включенных в ведро. Так, например, ведро с (20,2) будет означать, что было 20 случаев, когда это правило было правильным, и 2, где оно было неверным, на основе данных поезда. Вы можете использовать это соотношение как приблизительную меру доверия.

При использовании регрессии вы можете получить WEKA для вывода фактического числового результата классификатора (а не только класса) и основывать на нем уверенность.

В целом, в соответствии с документацией вы можете использовать опцию -p линии commend (см. here). Однако я не уверен, как рассчитываются эти числа.

Смежные вопросы