Лабораторная работа N4 "Наивный байесовский классификатор - NB"
Цель: Приобрести навыки применения алгоритма "Наивный байесовский классификатор – NB (НБК)" для решения задач классификации.
Теоретические сведения
В основе байесовской классификации лежит гипотеза максимальной вероятности, т.е. объект d считается принадлежащим классу cj (cj∈C), если при достигается наибольшая апостериорная вероятность: maxcP(cj|d). По формуле Байеса,
где
P(d|cj) - вероятность встретить объект d среди объектов класса cj (функция правдободобия).
P(cj) и P(d) - априорные вероятности класса cj и объекта d.
Если сделать “наивное” предположение, что все признаки, описывающие классифицируемые объекты, совершенно равноправны между собой и не связаны друг c другом, то P(d|cj) можно вычислить как произведение вероятностей встретить признак xi (xi∈X) среди объектов класса cj:
где P(xi|cj) - вероятностная оценка вклада признака xi в то, что d∈cj.
На практике при умножении очень малых условных вероятностей может наблюдаться потеря значащих разрядов, в связи с чем вместо самих оценок вероятностей P(xi|cj) применяют логарифмы этих вероятностей. Поскольку логарифм - монотонно возрастающая функция, то класс cj с наибольшим значением логарифма вероятности останется наиболее вероятным. Тогда решающее правило наивного байесовского классификатора (Naive Bayes Classifier) принимает следующий окончательный вид:
Остается только позаботиться, чтобы значения логарифмируемых вероятностей были не слишком близки к 0 (чтобы этого не случилось, можно применить лапласовское сглаживание).
Существуют различные виды реализации наивного байесовского классификатора, например:
Полиномиальный байесовский классификатор.
Бернуллевский байесовский классификатор.
Дополняющий байесовский классификатор (нет в Python API).
Гауссовский байесовский классификатор.
Мы будем использовать последний.
Полиномиальный Наивный Байес: Это главным образом используется для проблемы классификации документов, то есть относится ли документ к категории спорта, политики, технологии и т. Д. Используемые классификатором признаки / предикторы - это частота слов, присутствующих в документе.
Бернулли Наивный Байес: Это похоже на многочленный наивный метод Байеса, но предикторами являются булевы переменные. Параметры, которые мы используем для прогнозирования переменной класса, принимают только значения yes или no, например, если слово встречается в тексте или нет.
Гауссовский Наивный Байес
Основная идея — построить классификатор в предположении того, что функция p(x|с)} (функция правдоподобия, т.е. распределение объектов при фиксированном ответе с) известна для каждого класса и равна плотности многомерного нормального (гауссовского) распределения:
Здесь y это c, т.е. y C.
y – матрица ковариации.
y – вектор математических ожиданий.
N – число объектов.
D – размерность признакового пространства.
Гауссово распределение (нормальное распределение)
Таким образом, параметрами гауссовского классификатора являются априорные распределения
p(y), вектора математических ожиданий y и матрицы ковариации Σy, заданные для каждого класса
y ∈ C.
Порядок работы:
ЧАСТЬ 1.
Изучите представленный в работе методический материал.
В работе используйте программу, приведенную в ссылке на блокнот https://colab.research.google.com/drive/1gkIOdJ-dvYYi1rgbYltGce3wn3OrpKUl?usp=sharing, продемонстрируйте результаты ее работы в МИРО.
Добавьте в программу печать графиков функций плотности вероятности, используя ссылку на информацию о графиках плотности https://translate.google.com/translate?depth=1&rurl=translate.google.ru&sl=en&sp=nmt4&tl=ru&u=https://www.tutorialspoint.com/machine_learning_with_python/machine_learning_with_python_density_plots.htm&xid=17259,15700022,15700186,15700190,15700256,15700259,15700262.
Результаты продемонстрируйте в МИРО.
ЧАСТЬ 2.
Добавьте в программу код для сгенерированного вами набора данных в виде последовательности псевдослучайных чисел и примените к нему Гауссовский наивный классификатор.
Продемонстрируйте результаты работы программы в МИРО.
Напишите отчет по 4-й лабораторной работе и вышлите по модулю сообщений.
В отчете обязательно подробно объясните графики плотности вероятности, что они означают и поясните именно вами полученные графики.
https://translate.google.com/translate?depth=1&rurl=translate.google.ru&sl=en&sp=nmt4&tl=ru&u=https://www.tutorialspoint.com/machine_learning_with_python/machine_learning_with_python_density_plots.htm&xid=17259,15700022,15700186,15700190,15700256,15700259,15700262 – графики плотности
Документация sklearn по GaussianNB [Электронный ресурс]. Режим доступа: https://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.GaussianNB.html
Do'stlaringiz bilan baham: |