Применение метода дерева решений для решения задач классификации и прогнозирования

Автор: Мифтахова Альфия Асхатовна

Журнал: Инфокоммуникационные технологии @ikt-psuti

Рубрика: Новые информационные технологии

Статья в выпуске: 1 т.14, 2016 года.

Бесплатный доступ

В статье рассматривается и описывается один из алгоритмов Data Mining, предназначенных для решения задач классификации и прогнозирования - метод деревьев решений (decision trees). Представлен процесс построения дерева решений для решения задачи классификации сотрудников магазина в виде ручного построения, а также с помощью языка объектно-ориентированного программирования Python. Приведен пример построения дерева решений для решения задачи классификации стандартного набора данных Ирисов Фишера. Для этого примера приведены не только построение дерева вручную и с помощью Python, а также показана реализация деревьев решений в разных программных системах.

Еще

Дерево решений, атрибут, энтропия, прирост информации

Короткий адрес: https://sciup.org/140191810

IDR: 140191810   |   DOI: 10.18469/ikt.2016.14.1.10

Текст научной статьи Применение метода дерева решений для решения задач классификации и прогнозирования

Искусственный интеллект является обширной областью науки, алгоритмы которой используются при решении задач, для которых часто сложно и невозможно создать явный алгоритм решения. В настоящее время известно достаточно много алгоритмов, предназначенных для решения задач классификации или прогнозирования: метод опорных векторов, метод k ближайших соседей, нейронные сети и деревья решений [1].

Деревья решений – это способ представления правил в иерархической, последовательной структуре, где каждому объекту соответствует единственный узел, дающий решение [2]. На ребрах дерева записываются атрибуты, от которых зависит целевая функция. Данная статья посвящена одному из классических методов интеллектуального анализа данных– построению деревьев решений. Наиболее общее определение дерева решений – это средство поддержки принятия ре- шений при прогнозировании, которое широко применяется в статистике и анализе данных.

Цель процесса построения дерева принятия решений – создать модель, по которой можно было бы классифицировать случаи и решать, какие значения может принимать целевая функция, имея на входе несколько переменных.

Применения метода дерева решений для решения задач классификации и прогнозирования

Приведем пример построения дерева решений, решив задачу классификации сотрудников магазина. В качестве исходных данных выберем небольшой набор данных – сотрудники магазина, представленный в таблице 1.

В качестве целевой переменной возьмем переменную status; 5 записей из 11 целевая переменная имеет значение senior, а оставшиеся 6 записей – junior.

Таблица 1. Сотрудники магазина

department

status

age, years

salary, thousand rubles

sales

senior

31

46

sales

junior

26

28

sales

junior

31

33

marketing

senior

36

46

marketing

junior

31

41

systems

senior

31

66

systems

junior

26

46

systems

senior

41

66

secretary

senior

46

36

secretary

junior

26

28

Энтропия исходного множества до разбиения составит [3]:

Info = -£ /?7 log2p f = -(5 /11) log2 (5 /11)-

-(6/ll)10g2(6/ll) = 1,023 бит.

Произведем разбиение по атрибуту department. Три записи данного атрибута имеют значение sales, четыре – systems, два – marketing, два – secretary. Соответствующие вероятности будут равны:

p =3/ii- p =4/ii-

Гsales    0/11, rsystems 4 ' 1 1

p = 2/11- P =2/11

marketing             ’ secretary             *

Одна из трех записей, содержащих значение sales, указывает на senior, а две – на junior. Тогда при случайном выборе из этих трех записей вероятность появления senior составит 1/3, а junior – 2/3. Вычислим энтропию для значения sales:

^sales W = “E РД°№ = “0 1 3) 10§2 0 Z 3) ”

-(2/3) log, (2/3) = 1,35 бит.

Две записи из четырех, содержащих значение systems, указывают на senior, а две – на junior. Вычислим энтропию:

WOsyste^N^-^pfo^Pj =

= -(2 / 4) log, (2 / 4) - (2 / 4) log, (2 / 4) = 1 бит.

Одна из двух записей, содержащих значение marketing, указывает на senior, а другая – на junior. Вычислим энтропию:

M„,0,fc„„g(^) = -^РД°§2Р, =

= - (1 / 2) log, (1 / 2) - (1 / 2) log, (1 / 2) = 1 бит.

Одна из двух записей, содержащих значение secretary, указывает на senior, а другая – на junior. Вычислим энтропию:

lnf° secretary = -^p До^р 3 =

= -(1 / 2) log, (1 / 2) - (1 / 2) log, (1 / 2) = 1 бит.

На основе полученных данных можно рассчитать полную энтропию разбиения:

Hbdepartment (TV) = (3 /11) x 1,35 + (4 /11) x 1 +

+ (2/1 l)xl + (2/1 1) x 1 = 1,095 бит.

Прирост информации, полученный в результате разбиения по атрибуту department, будет равен:

Ga™department (N) = ^fa(N) -

- ^n/° department (N) = 1,023 -1,095 = - 0,072 бит.

Аналогичным образом находим и получаем прирост информации по остальным атрибутам:

Gainage (N) = Info(N) - Infoage (N) = 0,659 бит;

Gainsalary (N) = Info (N) - Info5Qlary (N) =

= 0,658 бит.

Рис. 1. Результат первого шага построения дерева

Таким образом, прирост информации в результате разбиения по атрибуту age больше по сравнению с другими атрибутами, поэтому выбирается в качестве начального разбиения в корневом узле дерева. Схема начального разбиения представлена на рис. 1.

Для значения 31 год получен узел, содержащий две записи со значением целевой переменно senior и две со значением junior. Далее производим поиск оптимального разбиения данного подмножества (подмножество N 1) данного узла.

Таблица 2. Множество N 1

department

status

age, years

salary, thousand rubles

sales

senior

31

46

sales

junior

31

33

systems

senior

31

66

marketing

junior

31

41

В качестве целевой переменной возьмем переменную status. В двух записях из четырех целевая переменная принимает значение senior и в двух – junior. Поэтому энтропия исходного множества до разбиения составит:

Info(M) = -^/2ylog2^z =

= - (2 / 4) log 2 (2 / 4) - (2 / 4) log 2 (2 / 4) = 1 бит.

Находим прирост информации по каждому нецелевому атрибуту:

Gaindepartmenl (M) = InMM) - Info deparlmem (M) =

= 0,5 бит ;

GainS(1^ (Nl) = Info (ЛП) - Infosalm, (ЛП) =

= 1-0 = 1 бит.

Разбиение по атрибуту salary обеспечивает наибольший прирост информации, поэтому выбирается в качестве дальнейшего разбиения дерева. Полное дерево, полученное в результате разбиения, представлена на рис. 2 [4].

Распространенный способ реализации деревьев решений – это построение дерева на языке программирования Python. Чтобы оценить, насколько хорош выбранный атрибут, алгоритм сначала вычисляет энтропию всей группы. Затем он пытается разбить группу по возможным значениям каждого атрибута и вычисляет энтропию двух новых групп.

Рис. 2. Полное дерево решений

Для определения того, какой атрибут дает наилучшее разбиение, вычисляется информационный выигрыш, то есть разность между текущей энтропией и средневзвешенной энтропией двух новых групп. Он вычисляется для каждого атрибута, после чего выбирается тот, для которого информационный выигрыш максимален. Вычисляя для каждого узла наилучший атрибут и расщепляя ветви, алгоритм создает дерево [5].

На рис. 3 представлен результат построения дерева решений с помощью интерпретатора языка программирования Python 2.7.6 [6].

Риc. 3. Результат построения дерева решений с помощью Python 2.7

Рассмотрим следующий пример построения дерева решений. В качестве исходных данных выберем классический набор данных – ирисы Фишера. В отличие от предыдущего примера данный набор содержит 150 экземпляров ирисов, принадлежащих к трем видам (setosa, versicolor, virginica). Для каждого экземпляра ириса известны четыре величины: длина и ширина чашелистика, длина и ширина лепестка [7]. Наша задача выработать критерии, по которым можно различить три вида. В качестве целевой переменной возьмем переменную Class; 50 записей из 150 принадлежат атрибуту Iris-setosa, 50 записей – Iris-versicolor, 50 записей – Iris-verginica. Энтропия исходного множества до разбиения составит:

Info^ = -^^ylog2jpy =

= -(50/150)log2(50/150)-(50/150)log2(50/150)-

- (50 /150) log2 (50 /150) = 0,477 бит.

Прирост информации по атрибутам:

Gains-imglh W = lnfo(N) - lnfos_length (N) =

= 0,477-1,383 = -0,906 бит;

Gam .-width (O = !nfo{N) - Infos.wjdth (N) = = 0,477-1,506 = -1,029 бит;

G^p-iength W = NOW - InfOp.length (N) =

= 0,477-0,039 = 0,438 бит;

Gainp-width (^) = Info^N) - Infop_width (N) = = 0,477-0,284 = 0,193 бит.

Прирост информации в результате разбиения по атрибуту petal-length больше по сравнению с другими атрибутами, поэтому выбирается в качестве начального разбиения в корневом узле дерева.

После этого производим дальнейшее разбиение, пока не получим оптимальное разбиение полного множества. Полное дерево, полученное в результате разбиения, представлено на рис. 4.

Чем больше набор данных содержит записей, тем более сложным и трудоемким становится процесс построения дерева решений вручную. Он занимает огромное количество времени, и вероятность ошибок возрастает. Для решения данной проблемы существуют программные продукты, предназначенные для анализа данных и содержащие алгоритм построения деревьев решений.

Рис. 4. Полное дерево решений

Одними из самых распространенных программ на сегодняшний день являются Deductor[8] и Orange Canvas [9]. На рис. 6 представлен результат построения дерева решений в Deductor. На рис. 7 представлен результат построения дерева решений в Orange Canvas [10].

Как видно из рис. 6-7, результаты, полученные с помощью программ Deductor и Orange Canvas, соответствуют результатам формульных вычислений. Поэтому можно сделать вывод о том, что задачи (наборы данных) с относительно небольшим числом атрибутов могут решаться вручную, в то время как задачи (наборы данных) с большим числом атрибутов легче и целесообразнее решать с помощью программных систем.

Чем больше набор данных, тем дольше и сложнее становится расчет по формулам. Могут затрачиваться часы, дни и даже месяцы, а программы производит расчеты в течение нескольких секунд. Программа сама отсекает несущественные факторы, выявляет степень влияния тех или иных факторов на результат, а также выдает информацию о достоверности правил дерева м Условие__________________________________| ^ Следствие________| it Поддержка | Д Достоверность |

- •■—:ЕСЛИ

■I 142 I—

____| 49

1—       petal_length < 2,45

J Iris-setosa               I ______

_] 45H**_

■I 45

В ■■ petal-length >= 2,45

I—

_| 97 |—

ZZI 49

ы !■■! petal_width < LA

иве___

_| 53 1—

ZZ1 48

^— petal-length < 4,9b

- ■■■! petal-length >= 4.95

Iris-versicolor

I!_______________________

_| 47 |—

ZJ 6|—■*—

J 48

1 4

^™ petal width < 1,55

lris-v»ginica

3 1— —

■I 3

:—BJ petal—width >=1,55

Iris-versicolor

_| 3 1— —__

__I 2

[■■l petal_width >= I,/5

Itis-virginica                 |— _______

_| 44 I

■ I 43

Рис. 6. Результат построения дерева решений в Deductor решений. Кроме того, полученные результаты, представленные в программах, являются более простыми для восприятия и понимания.

Результаты, полученные с помощью Orange Canvas и Deductor, обладают примерно равными возможностями. Однако работа с деревьями решений в Deductor реализована заметно удобнее. Программа имеет несколько визуализаторов дерева решений.

Пользователь может выбрать наиболее удобный для понимания. Один из визуализа- торов Deductor – правила «если – то» – удобное представление построенного дерева в виде правил.

Заключение

В статье рассмотрены несколько вариантов реализации алгоритма деревьев решений на конкретных примерах решения задач.

Качество работы метода деревьев решений зависит как от выбора метода, так и от набора исследуемых данных.

Рис. 7. Результат построения дерева решений в Orange Canvas

Список литературы Применение метода дерева решений для решения задач классификации и прогнозирования

  • Васильев В.И., Шарабыров И.В. Обнаружение атак в локальных беспроводных сетях на основе интеллектуального анализа данных//Известия ЮФУ. Технические науки. №2(151), 2014. -С.57-67.
  • Миронов С. Современные методы анализа данных//URL: http://old.ci.ru/inform05_02/p_04.htm (д.о. 10.08.2015).
  • Методы и средства анализа данных//URL: http://bourabai.ru/tpoi/analysis.htm#.D0.90.D0.BB.D0.B3.D0.BE.D1.80.D0.B8.D1.82.D0.BC_C4.5 (д.о. 10.08.2015).
  • Мифтахова А.А. Реализация алгоритма с 4.5 интеллектуального анализа данных, основанного на деревьях решений//Труды 12 МНПК «Проблемы теории и практики современной науки». Нефтекамск, 2015. -С. 113-120.
  • Сегаран Т. Программируем коллективный разум. Пер. с англ. СПб: Символ-Плюс, 2008. -368 c.
  • Python 2.7.6 Release//URL: https://www.python.org/download/releases/2.7.6/(д.о. 11.08.2015).
  • Бэстенс Д.Э., Ван Ден Берг В.М., Вуд Д. Нейронные сети и финансовые рынки: принятие решений в торговых операциях. -М.: ТВП, 1997. -236 с.
  • Deductor. Продвинутая аналитика без программирования//URL: http://basegroup.ru/deductor/description (д.о. 11.08.2015).
  • Orange.Data Mining -Fruitful and Fun//URL: http://orange.biolab.si/(д.о. 11.08.2015).
  • Пальмов С.В., Мифтахова А.А. Реализация деревьев решений в различных аналитических системах//Перспективы науки. №1(64), 2015. -C. 81-87.
Еще
Статья научная