Часть I. Наивный байесовский классификатор:
Сформулированная выше задача относится к проблеме построения модели классификации. Задача классификации – это формализованная задача, в которой имеется множество объектов (ситуаций), разделённых некоторым образом на классы. (Задано конечное множество объектов, для которых известно, к каким классам они относятся. Это множество называется выборкой или датасетом. Классовая принадлежность остальных объектов неизвестна. Требуется построить алгоритм, способный классифицировать произвольный объект из исходного множества.)
Наивный байесовский классификатор — простой вероятностный классификатор, основанный на применении Теоремы Байеса со строгими предположениями о независимости. Теорема Байеса — одна из основных теорем элементарной теории вероятностей, которая позволяет определить вероятность какого-либо события при условии, что произошло другое статистически взаимозависимое с ним событие.
Формула Байеса:
P(A|B)
=
,
где
P(A)— априорная вероятность гипотезы A
P(A|B) — вероятность гипотезы A при наступлении события B
P(B|A) — вероятность наступления события B при истинности гипотезы A
P(B) — полная вероятность наступления события B.
Достоинством наивного байесовского классификатора является малое количество данных для обучения, необходимых для оценки параметров, требуемых для классификации. А недостатком - малое количество совпадений между прогнозируемыми и реальными величинами, что означает, что классификация недостаточно точна, то есть данный классификатор относительно прост и примитивен.
Решение
С помощью таблицы Excel и промежуточного data.csv файла (где в качестве разделителей данных используем “;”) импортируем данные таблицы с характеристиками зданий в Python. Предварительно округлим в Excel значения колонок Y1 и Y2 с помощью функции ОКРУГЛ().
Рисунок 2. Округление значений в Excel
Рисунок 3. Импорт данных в файл data.csv
Далее для использования импортированных данных сохраняем (Save as) полученный скрипт в папке проекта. Теперь можно приступить к написанию кода.
Напишем функцию, которая обучит модель на тренировочном датасете (train), проверит на другом (test) и построит график точности по предсказанным моделью данным (на тестовом датасете):
def native_bayes(X_train, y_train, X_test, y_test):
gnb = GaussianNB() # Создадим модель
NBmodel = gnb.fit(X_train, y_train) # Обучим ее на train датасете
y_pred = NBmodel.predict(X_test) # Попросим предсказать результат на test датасете
visualize(y_test,y_pred,"Naive Bayes") # Посмотрим точность
Часть II. Регрессионные деревья
Дерево принятия решений (также могут назваться деревьями классификации или регрессионными деревьями) — средство поддержки принятия решений, использующееся в статистике и анализе данных для прогнозных моделей. Структура дерева представляет собой «листья» и «ветки». На ребрах («ветках») дерева решения записаны атрибуты, от которых зависит целевая функция, в «листьях» записаны значения целевой функции, а в остальных узлах — атрибуты, по которым различаются случаи. Чтобы классифицировать новый случай, надо спуститься по дереву до листа и выдать соответствующее значение. Подобные деревья решений широко используются в интеллектуальном анализе данных. Цель состоит в том, чтобы создать модель, которая предсказывает значение целевой переменной на основе нескольких переменных на входе.
Достоинства метода:
Прост в понимании и интерпретации.
Не требует подготовки данных.
Способен работать как с категориальными, так и с интервальными типами переменных. Прочие методы работают лишь с теми данными, где присутствует лишь один тип переменных. Например, метод отношений может быть применен только на номинальных переменных, а метод нейронных сетей только на переменных, измеренных по интервальной шкале.
Является надежным методом.
Позволяет работать с большим объемом информации без специальных подготовительных процедур. Данный метод не требует специального оборудования для работы с большими базами данных.
Недостатки метода:
Практическое применение алгоритма деревьев решений основано на эвристических алгоритмах.
Проблема переобучения. Для того, чтобы избежать данной проблемы, необходимо использовать Метод «регулирования глубины дерева».
Сложность и громоздкость модели.
