Наивный классификатор Байеса спроектирован для использования, когда предикторы независимы друг от друга в каждом классе, но это, кажется, работает хорошо на практике, даже когда то предположение независимости не допустимо. Это классифицирует данные на два шага:
Учебный шаг: Используя обучающие данные, метод оценивает параметры вероятностного распределения, принимающие предикторы условно независимы, учитывая класс.
Шаг предсказания: Для любых невидимых тестовых данных метод вычисляет апостериорную вероятность той выборки, принадлежащей каждому классу. Метод затем классифицирует тестовые данные согласно самой большой апостериорной вероятности.
Условное согласно классу предположение независимости значительно упрощает учебный шаг, поскольку можно оценить одномерную условную согласно классу плотность для каждого предиктора индивидуально. В то время как условная согласно классу независимость между предикторами не верна в целом, исследование показывает, что это оптимистическое предположение работает хорошо на практике. Это предположение об условной согласно классу независимости предикторов позволяет наивному классификатору Байеса оценивать параметры, требуемые для точной классификации при использовании меньшего количества обучающих данных, чем много других классификаторов. Это делает его особенно эффективным для наборов данных, содержащих много предикторов.
Учебный шаг в наивной классификации Бейеса основан на оценке P (X |Y), плотность вероятности или плотность вероятности предикторов X
учитывая класс Y
. Наивная модель ClassificationNaiveBayes
классификации Бейеса и обучение функционирует
fitcnb
окажите поддержку для (Гауссова) нормального, ядро, многочлен, и многомерный, условные распределения предиктора многочлена. Чтобы задать распределения для предикторов, используйте DistributionNames
аргумент пары "имя-значение" fitcnb
. Можно задать один тип распределения для всех предикторов путем предоставления вектора символов или строкового скаляра, соответствующего имени распределения, или задать различные распределения для предикторов путем предоставления длины массив строк D или массив ячеек из символьных векторов, где D является количеством предикторов (то есть, количеством столбцов X).
'normal'
распределение (задают использование 'normal'
) подходит для предикторов, которые имеют нормальные распределения в каждом классе. Для каждого предиктора вы моделируете с нормальным распределением, наивный классификатор Байеса оценивает отдельное нормальное распределение для каждого класса путем вычисления среднего и стандартного отклонения обучающих данных в том классе.
'kernel'
распределение (задают использование 'kernel'
) подходит для предикторов, которые имеют непрерывное распределение. Это не требует сильного предположения, такого как нормальное распределение, и можно использовать его в случаях, где распределение предиктора может быть скошено или иметь несколько peaks или режимов. Требуются более вычислительное время и больше памяти, чем нормальное распределение. Для каждого предиктора вы моделируете с распределением ядра, наивный классификатор Байеса вычисляет отдельную оценку плотности ядра для каждого класса на основе обучающих данных для того класса. По умолчанию ядро является нормальным ядром, и классификатор выбирает ширину автоматически для каждого класса и предиктора. Поддержки программного обеспечения, задающие различные ядра для каждого предиктора и различные ширины для каждого предиктора или класса.
Многомерное, распределение многочлена (задают использование 'mvmn'
) подходит для предиктора, наблюдения которого являются категориальными. Конструкция Наивного классификатора Байеса с помощью многомерного предиктора многочлена описана ниже. Чтобы проиллюстрировать шаги, рассмотрите пример, где наблюдения помечены 0, 1, или 2, и предиктор погода, когда выборка проводилась.
Запишите отличные категории, представленные в наблюдениях за целым предиктором. Например, отличные категории (или уровни предиктора) могут включать солнечный, дождь, снег, и облачный.
Разделите наблюдения классом ответа. Например, отдельные наблюдения, помеченные 0 от наблюдений, пометили 1 и 2, и наблюдения пометили 1 от наблюдений, пометил 2.
Для каждого класса ответа подбирайте модель многочлена использование частот родственника категории и общего количества наблюдений. Например, для наблюдений пометил 0, предполагаемая вероятность, это было солнечно, = (количество солнечных наблюдений с меткой 0) / (количество наблюдений с меткой 0), и подобный для других категорий и меток ответа.
Условное выражение класса, случайные переменные многочлена включают многомерную случайную переменную многочлена.
Вот некоторые другие свойства наивных классификаторов Байеса, которые используют многомерный многочлен.
Для каждого предиктора вы моделируете с многомерным распределением многочлена, наивным классификатором Байеса:
Записывает отдельный набор отличных уровней предиктора для каждого предиктора
Вычисляет отдельный набор вероятностей для набора уровней предиктора для каждого класса.
Поддержки программного обеспечения, моделируя непрерывные предикторы как многомерный многочлен. В этом случае уровни предиктора являются отличными случаями измерения. Это может привести предиктор, имеющий много уровней предиктора. Это - хорошая практика, чтобы дискретизировать такие предикторы.
Если наблюдение является набором успехов для различных категорий (представленный всеми предикторами) из постоянного числа независимых испытаний, то укажите, что предикторы включают распределение многочлена. Для получения дополнительной информации смотрите Распределение Многочлена.
Распределение многочлена (задают использование 'DistributionNames','mn'
) является соответствующим, когда, учитывая класс каждое наблюдение является случайной переменной многочлена. Таким образом, наблюдение, или строка, j данных о предикторе, X представляет категории D, где xjd является количеством успехов для категории (т.е. предиктор) d в независимые испытания. Шаги, чтобы обучить наивный классификатор Байеса обрисованы в общих чертах затем.
Для каждого класса соответствуйте распределению многочлена для предикторов, учитывая класс:
Агрегировав взвешенное, категория рассчитывает по всем наблюдениям. Кроме того, программное обеспечение реализует дополнение, сглаживающее [1].
Оценка вероятностей категории D в каждом классе с помощью агрегированных количеств категории. Эти вероятности категории составляют параметры вероятности из распределения многочлена.
Позвольте новому наблюдению иметь общее количество m. Затем наивный классификатор Байеса:
Устанавливает общий параметр количества каждого распределения многочлена к m
Для каждого класса, оценивает апостериорную вероятность класса с помощью предполагаемых распределений многочлена
Предсказывает наблюдение в класс, соответствующий самой высокой апостериорной вероятности
Считайте так называемое моделью сумки лексем, где существует сумка, содержащая много лексем различных типов и пропорций. Каждый предиктор представляет отличный тип лексемы в сумке, наблюдением является n независимые ничьи (т.е. с заменой) лексем от сумки, и данные являются вектором количеств, где элемент, d является лексемой числа раз d, появляется.
Приложение машинного обучения является конструкцией почтового классификатора спама, где каждый предиктор представляет слово, символ или фразу (т.е. лексема), наблюдение является электронным письмом, и данные являются количествами лексем в электронном письме. Один предиктор может считать количество восклицательных знаков, другие могут считать число раз, слово "деньги" появляется, и другие могут считать число раз, имя получателя появляется. Это - наивная модель Bayes под дальнейшим предположением, что общее количество лексем (или общая длина документа) независимо от класса ответа.
Другие свойства наивных классификаторов Байеса, которые используют наблюдения многочлена, включают:
Классификация основана на относительных частотах категорий. Если nj = 0 для наблюдения j, то классификация не возможна для того наблюдения.
Предикторы не условно независимы, поскольку они должны суммировать к nj.
Наивный Байесов не является соответствующим, когда nj предоставляет информацию о классе. Таким образом, этот классификатор требует, чтобы nj был независим от класса.
Если вы указываете, что предикторы являются условно многочленом, то программное обеспечение применяет эту спецификацию ко всем предикторам. Другими словами, вы не можете включать 'mn'
в массиве ячеек при определении 'DistributionNames'
.
Если предиктор является категориальным, т.е. является многочленом в классе ответа, то укажите, что это - многомерный многочлен. Для получения дополнительной информации смотрите Многомерное Распределение Многочлена.
[1] Укомплектование людьми, C. D. П. Рэгэвэн и М. Шюц. Введение в Информэйшн-Ретривэл, Нью-Йорк: Издательство Кембриджского университета, 2008.