проблема
Я пытался использовать наивный байесовский код на помеченном наборе данных о преступности, но получил очень плохие результаты (точность 7%). Наивный Байес работает намного быстрее, чем другие алгоритмы, которые я использовал, поэтому я хотел попытаться выяснить, почему счет был таким низким.
Исследование
После прочтения я обнаружил, что наивный байесовский анализ следует использовать со сбалансированными наборами данных, поскольку он имеет уклон для классов с более высокой частотой. Поскольку мои данные несбалансированы, я хотел попробовать использовать комплементарный наивный байесовский метод, поскольку он специально создан для работы с перекосами данных. В статье, описывающей процесс, приложение предназначено для классификации текста, но я не понимаю, почему этот метод не работает в других ситуациях. Вы можете найти статью, на которую я ссылаюсь, здесь . Короче говоря, идея состоит в том, чтобы использовать веса, основанные на случаях, когда класс не появляется.
Проведя некоторые исследования, я смог найти реализацию на Java, но, к сожалению, я не знаю никакой Java и просто не понимаю алгоритм достаточно хорошо, чтобы реализовать себя.
Вопрос
где я могу найти реализацию в Python? Если этого не существует, как я должен сам осуществить это?
Моя реализация Complement Naive Bayes в scikit-learn может быть найдена здесь .
источник