Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы машинного обучения. Учебно-методическое пособие
.pdf
11
Пусть на множестве объектов задана функция расстояния ∞
.
Существует целевая зависимость , значения которой известны
только на объектах обучающей выборки ℓ
ℓ
.
Множество классов конечно. Требуется построить алгоритм классификации
, аппроксимирующий целевую зависимость на всём множестве
.
Для произвольного объекта расположим элементы обучающей выборки
в порядке возрастания расстояний до :
, где через
обозначается i-й сосед объекта u. Соответственно, ответ
на i-м соседе объекта u есть
. Таким образом, любой объект
порождает свою перенумерацию выборки.
Определение: Метрический алгоритм классификации с обучающей выборкой
относит объект к тому классу , для которого суммарный вес
ближайших обучающих объектов максимален:
(3.1.1)
где весовая функция оценивает степень важности -го соседа для
классификации объекта . Функция называется оценкой близости
объекта к классу .
Алгоритм k ближайших соседей (k nearest neighbors, kNN).
Чтобы сгладить влияние выбросов, будем относить объект к тому классу,
элементов которого окажется больше среди ближайших соседей
:
(3.1.2)
При этот алгоритм совпадает с предыдущим, следовательно, неустойчив
к шуму. При , наоборот, он чрезмерно устойчив и вырождается в
константу.
Таким образом, крайние значения нежелательны. На практике оптимальное
значение параметра определяют по критерию скользящего контроля с
исключением объектов по одному (leave-one-out, LOO). Для каждого объекта
проверяется, правильно ли он классифицируется по своим
ближайшим соседям.
(3.1.3)
Заметим, что если классифицируемый объект
не исключать из обучающей
выборки, то ближайшим соседом всегда будет сам
, и минимальное

12
(нулевое) значение функционала будет достигаться при .
Существует и альтернативный вариант метода kNN: в каждом классе
выбирается ближайших к объектов, и объект относится к тому классу, для
которого среднее расстояние до ближайших соседей минимально.
3.2 Алгоритм k взвешенных ближайших соседей.
Недостаток kNN в том, что максимум может достигаться сразу на нескольких
классах. В задачах с двумя классами этого можно избежать, если взять нечётное
. Более общая тактика, которая годится и для случая многих классов — ввести
строго убывающую последовательность вещественных весов
, задающих
вклад i-го соседа в классификацию:
(3.2.1)
Выбор последовательности
является эвристикой. Если взять линейно
убывающие веса
, то неоднозначности также могут возникать, хотя
и реже (пример: классов два; первый и четвёртый сосед голосуют за класс 1,
второй и третий — за класс 2; суммы голосов совпадают). Неоднозначность
устраняется окончательно, если взять нелинейно убывающую
последовательность, скажем, геометрическую прогрессию:
, где
знаменатель прогрессии является параметром алгоритма. Его можно
подбирать по критерию , аналогично числу соседей .
3.3 Метод парзеновского окна
Ещё один способ задать веса соседям — определить
как функцию от
расстояния
, а не от ранга соседа . Введём функцию ядра ,
невозрастающую на . Положив
в общей
формуле, получим алгоритм
(3.3.1)
Параметр называется шириной окна и играет примерно ту же роль, что и
число соседей . «Окно» — это сферическая окрестность объекта радиуса ,
при попадании в которую обучающий объект
«голосует» за отнесение
объекта к классу
. Мы пришли к этому алгоритму чисто эвристическим
путём, однако он имеет более строгое обоснование в байесовской теории
классификации, и, фактически, совпадает с методом парзеновского окна.
Параметр можно задавать априори или определять по скользящему контролю.

13
Зависимость , как правило, имеет характерный минимум, поскольку
слишком узкие окна приводят к неустойчивой классификации; а слишком
широкие — к вырождению алгоритма в константу.
Фиксация ширины окна не подходит для тех задач, в которых обучающие
объекты существенно неравномерно распределены по пространству . В
окрестности одних объектов может оказываться очень много соседей, а в
окрестности других — ни одного. В этих случаях применяется окно
переменной ширины. Возьмём финитное ядро — невозрастающую функцию
, положительную на отрезке , и равную нулю вне его. Определим
как наибольшее число, при котором ровно ближайших соседей объекта
получают ненулевые веса:
. Тогда алгоритм принимает вид
(3.3.2)
Заметим, что при финитном ядре классификация объекта сводится к поиску его
соседей, тогда как при не финитном ядре (например, гауссовском) требуется
перебор всей обучающей выборки.
Выбор ядра следует осуществлять из вариантов, представленных на рисунке:
Рисунок 3.3.1 – Часто используемые ядра классификации
Входные данные:
К заданию на лабораторную работу прилагаются файлы, в которых
представлены наборы данных из
объектов. Каждый объект описывается
двумя признаками () и соответствующим ему классом (
).

14
Задание на лабораторную работу:
Суть лабораторной работы заключается в написании классификатора на основе
метода k ближайших соседей. Данные из файла необходимо разбить на
обучающую и тестовую выборки. На основе этих данных необходимо обучить
разработанный классификатор и протестировать его на обеих выборках. В
качестве отчёта требуется представить работающую программу и таблицу с
результатами тестирования для каждого из 10 разбиений. Разбиение выборки
необходимо выполнять программно, случайным образом. Разбивать
рекомендуется по следующему правилу: делим выборку на 3 равных части, 2
части используем в качестве обучающей, одну в качестве тестовой. Кроме того,
обучающая выборка должна быть сгенерирована таким образом, чтобы
минимизировать разницу между количеством представленных объектов разных
классов, т.е.
.
Варианты:
Выполнение лабораторной работы разбито на несколько пунктов, в каждом из
которых есть несколько вариантов, выбор варианта опирается на
–
индивидуальный номер студента (для студентов очной формы обучения это
номер в журнале).
Первый пункт отвечает за выбор типа классификатора. Вариант выбирается по
формуле :
1. Метод k взвешенных ближайших соседей
2. Метод парзеновского окна с фиксированным h
3. Метод парзеновского окна с относительным размером окна
Для первого варианта задания необходимо использовать весовую функцию
по формуле . Параметр подбирается методом
скользящего контроля.
1.
2.
В случае 2-го и 3-го вариантов, необходимо использовать функцию ядра
из списка по следующей формуле
:
1. Q –квартическое
2. T – треугольное
3. П – прямоугольное
Кроме того, к лабораторной работе прилагаются 5 файлов с данными для
классификации, файл выбирается по следующей формуле

15
Контрольные вопросы
1. Что понимается под классифицированием объекта?
2. Что называют тестовой выборкой?
3.Что такое валидационная выборка?
4. Как оценить точность метода ближайщих соседей?
5. Чем классификация отличается от кластеризации?

16
4. Логические классификаторы
Пусть — некоторый предикат, определённый на множестве
объектов X. Говорят, что предикат ϕ выделяет или покрывает (cover) объект x,
если . Предикат называют закономерностью, если он выделяет
достаточно много объектов какого-то одного класса c, и практически не
выделяет объекты других классов (более строгое определение будет дано
ниже). Особую ценность представляют закономерности, которые описываются
простой логической формулой. Их называют правилами (rules). Процесс поиска
правил по выборке называют извлечением знаний из данных (knowledge
discovery). К знаниям предъявляется особое требование — они должны быть
интерпретируемы, то есть понятны людям. На практике логические
закономерности часто ищут в виде конъюнкций небольшого числа
элементарных высказываний. Именно в такой форме люди привыкли выражать
свой житейский и профессиональный опыт.
Напомним основные обозначения. Имеется пространство объектов и
конечное множество имён классов . Целевая зависимость
известна только на объектах обучающей выборки
. Требуется построить алгоритм классификации
, аппроксимирующий на всём . [1]
Понятие информативности
Интуитивно предикат тем более информативен, чем больше он выделяет
объектов «своего» класса по сравнению с объектами всех остальных
«чужих» классов. Свои объекты называют также позитивными (positive), а
чужие — негативными (negative). Введём следующие обозначения:
• — число объектов класса в выборке
;
• — из них число объектов, для которых выполняется условие ;
• — число объектов всех остальных классов в выборке
;
• — из них число объектов, для которых выполняется условие .
Для краткости индекс и аргумент будем иногда опускать.
Предполагается, что .
Итак, задача построения информативного предиката сводится к оптимизации
по двум критериям: и . Наименее интересны те
предикаты, которые либо выделяют слишком мало объектов, либо выделяют
позитивные и негативные объекты примерно в той же пропорции, в которой
они были представлены во всей выборке, . Введём обозначение
для доли негативных среди всех выделяемых объектов, и
для доли
выделяемых позитивных объектов:
(4.1)

17
Опр. Предикат будем называть логической -закономерностью для
класса , если
и
при заданных достаточно
малом и достаточно большом из отрезка [0, 1].
Если , то закономерность называется чистой или
непротиворечивой. Если , то закономерность называется
частичной.
Статистическое определение информативности
Адекватную скалярную характеристику информативности даёт техника
проверки статистических гипотез. Пусть — вероятностное пространство,
выборка
— простая, то есть случайная, независимая, одинаково
распределённая (independent, identically distributed — i.i.d.), и —
случайные величины. Допустим, справедлива гипотеза о независимости
событий . Тогда вероятность реализации пары
подчиняется гипергеометрическому распределению:
(4.2)
где
— биномиальные коэффициенты, . Если вероятность
мала, и тем не менее пара реализовалась, то гипотеза о
независимости должна быть отвергнута. Чем меньше значение вероятности, тем
более значимой является связь между и . Можно сказать и так: если
реализовалось маловероятное событие, то, скорее всего, оно не случайно, а
закономерно.
Опр. Информативность предиката относительно класса по выборке
есть
(4.3)
Предикат будем называть статистической закономерностью для класса ,
если
при заданном достаточно большом
. Порог
информативности
выбирается так, чтобы ему соответствовало достаточно
малое значение вероятности, называемое уровнем значимости. Для каждой
задачи он должен выбираться индивидуально.
Энтропийное определение информативности
Ещё один способ определения информативности вытекает из теории
информации. Напомним, что если имеются два исхода
с вероятностями
и , то количество информации, связанное с исходом
, по
определению равно
. Это математическое ожидание числа бит,
необходимых для записи информации о реализации исходов
при

18
использовании оптимального (наиболее экономного) кодирования. Энтропия
определяется как матожидание количества информации:
. (4.4)
Будем считать появление объекта класса c исходом
, а появление объекта
любого другого класса исходом
. Тогда, подставляя вместо вероятностей
частоты, можно оценить энтропию выборки
:
(4.5)
Допустим, стало известно, что предикат выделил объектов из
принадлежащих классу , и объектов из , не принадлежащих классу . Тогда
энтропия выборки есть . Вероятность появления
объекта из этой выборки оценивается как
. Аналогично, энтропия выборки
есть , а вероятность появления объекта из
неё оценивается как
. Таким образом, энтропия всей выборки после
получения информации становится равна
. (4.6)
В итоге уменьшение энтропии составляет
. (4.7)
Это и есть информационный выигрыш (information gain) — количество
информации об исходном делении выборки на два класса «c» и «не c», которое
содержится в предикате . Таким образом, появляется ещё одно,
альтернативное, определение закономерности.
Опр. Предикат является закономерностью по энтропийному критерию
информативности, если
при некотором достаточно
большом
.
Решающие деревья
Решающее дерево (decision tree, DT) — это логический алгоритм обучения,
основанный на поиске конъюнктивных закономерностей, который используется
как для задач классификации, так и для задач регрессии. Он имеет
иерархическую древовидную структуру, которая состоит из корневого узла,
ветвей, внутренних узлов и конечных узлов. это ещё один логический алгоритм
классификации, основанный на поиске конъюнктивных закономерностей. Но, в
отличие от решающего списка, при синтезе дерева все конъюнкции строятся
одновременно. дерево решений начинается с корневого узла, который не имеет
входящих ветвей. Исходящие ветви от корневого узла затем направляются во

19
внутренние узлы, также известные как узлы принятия решений. На основе
доступных функций оба типа узлов выполняют оценку для формирования
однородных подмножеств, которые обозначаются конечными узлами или
конечными узлами. Листовые узлы представляют все возможные результаты в
наборе данных. Дерево называется бинарным, если из любой его внутренней
вершины выходит ровно два ребра. Выходящие рёбра связывают каждую
внутреннюю вершину с левой дочерней вершиной
и с правой дочерней
вершиной
.
Опр. Бинарное решающее дерево — это алгоритм классификации, задающийся
бинарным деревом, в котором каждой внутренней вершине приписан
предикат , каждой терминальной вершине приписано
имя класса . При классификации объекта он проходит по дереву
путь от корня до некоторого листа, в соответствии с Алгоритмом
Рисунок 4.1 –Алгоритм классификации объекта бинарным решающим
деревом
Объект доходит до вершины v тогда и только тогда, когда выполняется
конъюнкция , составленная из всех предикатов, приписанных внутренним
вершинам дерева на пути от корня до вершины . Пусть — множество
всех терминальных вершин дерева. Множества объектов
, выделяемых терминальными конъюнкциями , попарно не
пересекаются, а их объединение совпадает со всем пространством (это легко
доказывается индукцией по числу вершин дерева). Отсюда следует, что
решающее дерево никогда не отказывается от классификации, в отличие от
решающего списка. Отсюда также следует, что алгоритм классификации
, реализуемый бинарным решающим деревом, можно представить в
виде простого голосования конъюнкций:
(4.8)
причём для любого одно и только одно слагаемое во всех этих суммах
равно единице. Вместо суммирования можно было бы использовать и
дизъюнкцию. Естественное требование максимизации информативности
конъюнкций означает, что каждая из них должна выделять как можно

20
больше обучающих объектов, допуская при этом как можно меньше ошибок.
Для повышения обобщающей способности решающего дерева число листьев
должно быть как можно меньше, и они должны покрывать подвыборки
примерно одинаковой мощности .
Задание на лабораторную работу
Данная работа наиболее творческая и призвана показать, насколько студент
подготовлен к реальному применению полученных знаний на практике. Как
известно, в реальной работе никаких вводных данных не предоставляется, тем
не менее, мы слегка пренебрегли данным правилом и предоставили теорию и
предпочтительный метод для применения.
На сайте kaggle по ссылке располагаются реальные данные “Heart Attack
Prediction”, которые несут информацию по сердечной заболеваемости,
собранные различными медицинскими учреждениями. Каждый человек
представлен 14ю характеристиками и полем goal, которое показывает наличие
болезни сердца, поле принимает значение от 0 до 4 (0 – нет болезни).
Требуется имеющиеся данные разбить на обучающую и тестовую выборки в
процентном соотношении 70 к 30. После чего по обучающей выборке
необходимо построить решающее дерево. Для построения дерева можно
пользоваться любыми существующими средствами. Кроме того, для
построения дерева необходимо будет решить задачу выделения
информативных решающих правил относительно имеющихся числовых
признаков.
Разрешается использовать уже реализованные решающие деревья из известных
библиотек (например, scikit-learn для Python), либо реализовывать алгоритм
построения дерева самостоятельно (все необходимые алгоритмы представлены
в теории по ссылке).
В качестве результата работы необходимо сделать 10 случайных разбиений
исходных данных на обучающую и тестовую выборки, для каждой построить
дерево и протестировать, после чего построить таблицу, в которой указать
процент правильно классифицированных данных. Полученную таблицу
необходимо включить в отчёт по лабораторной работе.
Контрольные вопросы
1. Какой метод нужно использовать для построения дерева решений?
2. Возможно ли расширить модель дерева решений?
3. Какой параметр метода RandomForestClassifier отвечает за максимальную
глубину дерева?
4. В какой библиотеке находится метод для построения дерева решений?
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
