По моему опыту, должным образом обученные наивные байесовские классификаторы обычно удивительно точны (и очень быстры в обучении - заметно быстрее, чем любой построитель классификаторов, которого я когда-либо использовал).
, поэтому, когда вы хотите улучшить предсказание классификатораВы можете посмотреть в нескольких местах:
настроить свой классификатор (настройка настраиваемых параметров классификатора);
применитькакой-то метод комбинирования классификаторов (например, ансамблирование, усиление, упаковка)или вы можете
просмотреть данные , поступившие в классификатор - либо добавьте больше данных, улучшите базовый анализ или уточните функции, которые вы выбираете из данных.
w / r / t наивные байесовские классификаторы, настройка параметров ограничена;Я рекомендую сосредоточиться на ваших данных - то есть на качестве предварительной обработки и выборе функций.
I.Синтаксический анализ данных (предварительная обработка)
Я предполагаю, что ваши необработанные данные являются чем-то вроде строки необработанного текста для каждой точки данных, которая путем серии шагов обработки преобразует каждую строку в структурированный вектор (1D массив) для каждой точки данных, так что каждое смещение соответствует одному признаку (обычно слову), а значение в этом смещении соответствует частоте.
stemming : вручную или с помощью библиотеки stemming?популярными с открытым исходным кодом являются Портер, Ланкастер и Снежок.Так, например, если у вас есть термины программист, программа, программирование, запрограммированные в заданной точке данных, стеммер сведет их к одному стеблю (вероятно, программа ), так что ваш терминвектор для этой точки данных будет иметь значение 4 для функциональной программы, что, вероятно, является тем, что вам нужно.
поиск синонима : та же идея, что и stemming--сложить связанные слова в одно слово;таким образом, средство поиска синонимов может идентифицировать разработчика, программиста, программиста и программиста и объединить их в один термин
нейтральные слова : слова с одинаковыми частотами в разных классах составляютплохие характеристики
II.Выбор функции
рассмотрим прототип варианта использования для NBC: фильтрация спама;вы можете быстро увидеть, как он выходит из строя, и так же быстро, как вы можете увидеть, как его улучшить.Например, спам-фильтры выше среднего имеют такие нюансы, как: частота слов во всех заглавных буквах, частота слов в заголовке и восклицательный знак в заголовке.Кроме того, лучшими характеристиками часто являются не отдельные слова, а, например, пары слов или большие группы слов .
III.Определенные оптимизации классификатора
Вместо 30 классов используется схема «один против многих» - другими словами, вы начинаете с классификатора двух классов (Класс A и«все остальное»), затем результаты в классе «все остальное» возвращаются в алгоритм для классификации на класс В и «все остальное» и т. д.
Метод Фишера (вероятно,самый распространенный способ оптимизации наивного байесовского классификатора.) Для меня я считаю, что Фишер нормализует (точнее, стандартизирует ) входные вероятности. NBC использует вероятности признаков для построениявероятность «всего документа».Метод Фишера вычисляет вероятность категории для каждой функции документа, затем объединяет эти вероятности функции и сравнивает эту объединенную вероятность с вероятностью случайного набора признаков.