Преимущества и недостатки алгоритма
Преимущества:
- классификация, в том числе многоклассовая, выполняется легко и быстро;
- когда допущение о независимости выполняется, НБА превосходит другие алгоритмы, такие как логистическая регрессия (logistic regression), и при этом требует меньший объем обучающих данных;
- НБА лучше работает с категорийными признаками, чем с непрерывными. Для непрерывных признаков предполагается нормальное распределение, что является достаточно сильным допущением.
Недостатки:
Если в тестовом наборе данных присутствует некоторое значение категорийного признака, которое не встречалось в обучающем наборе данных, тогда модель присвоит нулевую вероятность этому значению и не сможет сделать прогноз. Это явление известно под названием «нулевая частота» (zero frequency). Данную проблему можно решить с помощью сглаживания. Одним из самых простых методов является сглаживание по Лапласу (Laplace smoothing).
Хотя НБА является хорошим классификатором, значения спрогнозированных вероятностей не всегда являются достаточно точными. Поэтому не следует слишком полагаться на результаты, возвращенные методом predict_proba.
Еще одним ограничением НБА является допущение о независимости признаков. В реальности наборы полностью независимых признаков встречаются крайне редко.
Простой пример построения наивного байесовского классификатора
Ниже представлен обучающий набор данных, содержащий один признак «Погодные условия» (weather) и целевую переменную «Игра» (play), которая обозначает возможность проведения матча. На основе погодных условий мы должны определить, состоится ли матч. Чтобы сделать это, необходимо выполнить следующие шаги.
Шаг 1. Преобразуем набор данных в частотную таблицу (frequency table).
Обозначения в таблицах: Sunny – Солнечная погода, Rainy – Дождливая погода, Overcast – Облачная погода
Шаг 2. Создадим таблицу правдоподобия (likelihood table), рассчитав соответствующие вероятности. Например, вероятность облачной погоды (overcast) составляет 0,29, а вероятность того, что матч состоится (yes) – 0,64.
Шаг 3. С помощью теоремы Байеса рассчитаем апостериорную вероятность для каждого класса при данных погодных условиях. Класс с наибольшей апостериорной вероятностью будет результатом прогноза.
Первые два шага – обучение, построение модели по наблюдаемым данным, шаг третий – классификация.
Например, по построенной модели определим, состоится ли матч при солнечной погоде (sunny).
Вычислим вероятность:
P(Yes | Sunny) = P(Sunny | Yes) * P(Yes) / P(Sunny)
P(Sunny | Yes) = 3 / 9 = 0,33
P(Sunny) = 5 / 14 = 0,36
P(Yes) = 9 / 14 = 0,64
Откуда:
P(Yes | Sunny) = 0,33 * 0,64 / 0,36 = 0,60
Значит, при солнечной погоде более вероятно, что матч состоится.
Аналогичным образом с помощью НБА можно прогнозировать несколько различных классов на основе множества признаков. Этот алгоритм в основном используется в области классификации текстов и при решении задач многоклассовой классификации.
Содержание отчета
Отчет должен содержать:
1. Постановку задачи.
2. Оценки обобщающей способности классификатора.
3. Выводы.
4. Приложение к отчету.
В приложении к Отчету необходимо дать описание требований к комплектации ЭВМ и шагов, необходимых для установки и запуска программы, а также листинг программы.
Отчет должен быть подготовлен в печатном виде и содержать иллюстрации работы программы.
В электронном виде нужно представить:
1. Электронную версию отчета по лабораторной работе.
2. Результирующую программу (exe-файл), необходимые для ее работы рабочие материалы (базу данных наблюдений).
3. Файл READ ME (описание шагов, необходимых для установки и запуска программы на компьютере).
Работающая программа (exe-файл) должна запускаться на компьютере со стандартным программным обеспечением и не требовать специальных усилий для своей работы (установки на компьютере специального языка программирования, размещения компонентов программы на сервере, прописывания пути к БЗ в командных строках и т.д.).
Лабораторная робота №4
Тема: исследование алгоритмов обучения нейронных сетей.
Цель: приобрести практические навыки построения нейросетей различной архитектуры средствами пакета Neural Network Toolbox, оценить эффективность работы каждой из них.
Порядок выполнения работы
1. Установить MATLAB и пакет Neural Network Toolbox.
2. Выбрать для обучения нейросети любую базу данных из источника с массивами баз данных для отладки алгоритмов машинного обучения https://archive.ics.uci.edu/ml/machine-learning-databases/?C=N;O=D.
3. Разбить выборку на обучающую и контрольную.
4. Средствами Neural Network Toolbox построить сети: многослойные, RBF. При построении многослойных сетей исследовать их работу на различных функциях активации и числе нейронов скрытого слоя.
5. Сохранить результат обучения в файле формата mat для дальнейшего использования.
6. Проверить эффективность работы каждой из построенных сетей на контрольной выборке.
7. Оформить отчет по лабораторной работе.