Мое сомнение здесь в том, что, поскольку класс NaiveBayes не реализует метод classifyInstance
, он просто выводит его из абстрактного класса AbstractClassifier
, подразумевается ли, что я должен реализовать его по своим собственным правилам?
Нет, не стоит.
Документация AbstractClassifier
гласит:
Абстрактный классификатор. Все схемы для числового или номинального прогнозирования в Weka
расширить этот класс. Обратите внимание, что классификатор ДОЛЖЕН либо реализовать
distributionForInstance () или classifyInstance () .
Глядя на исходный код AbstractClassifier , мы видим, что classifyInstance
вызывает distributionForInstance
и наоборот. Поэтому, если класс наследует от AbstractClassifier
и не переопределяет хотя бы один из этих двух методов, это приведет к бесконечной рекурсии и переполнению стека.
NaiveBayes
реализует distributionForInstance
, и метод classifyInstance
, унаследованный от AbstractClassifier
, будет использовать его. Возвращает индекс класса с наибольшей вероятностью, если атрибут класса является номинальным.