Дерево решений — это график, представляющий варианты и их результаты в виде дерева. Узлы на графике представляют событие или выбор, а края графика представляют правила или условия принятия решения. В основном используется в приложениях машинного обучения и интеллектуального анализа данных, использующих R.
Примерами использования решения могут быть: прогнозирование электронной почты как спама или не спама, прогнозирование опухоли злокачественного или прогнозирование ссуды как хорошего или плохого кредитного риска на основе факторов в каждом из них. Обычно создается модель с данными наблюдений, также называемыми данными обучения. Затем набор проверочных данных используется для проверки и улучшения модели. R имеет пакеты, которые используются для создания и визуализации деревьев решений. Для нового набора переменных-предикторов мы используем эту модель, чтобы прийти к решению относительно категории (да / нет, спам / не спам) данных.
Пакет R «party» используется для создания деревьев решений.
Установить пакет R
Используйте приведенную ниже команду в консоли R для установки пакета. Вы также должны установить зависимые пакеты, если таковые имеются.
install.packages("party")
Пакет «party» имеет функцию ctree (), которая используется для создания и анализа дерева решений.
Синтаксис
Основной синтаксис для создания дерева решений в R —
ctree(formula, data)
Ниже приведено описание используемых параметров:
-
формула — это формула, описывающая предиктор и переменные ответа.
-
data — имя используемого набора данных.
формула — это формула, описывающая предиктор и переменные ответа.
data — имя используемого набора данных.
Входные данные
Мы будем использовать встроенный набор данных R с именем readingSkills для создания дерева решений. Он описывает оценку чьего-либо навыка чтения, если мы знаем переменные «возраст», «размер обуви», «оценка» и то, является ли человек носителем языка или нет.
Вот пример данных.
# Load the party package. It will automatically load other # dependent packages. library(party) # Print some records from data set readingSkills. print(head(readingSkills))
Когда мы выполняем приведенный выше код, он дает следующий результат и диаграмму —
nativeSpeaker age shoeSize score 1 yes 5 24.83189 32.29385 2 yes 6 25.95238 36.63105 3 no 11 30.42170 49.60593 4 yes 7 28.66450 40.28456 5 yes 11 31.88207 55.46085 6 yes 10 30.07843 52.83124 Loading required package: methods Loading required package: grid ............................... ...............................
пример
Мы будем использовать функцию ctree (), чтобы создать дерево решений и увидеть его график.
# Load the party package. It will automatically load other # dependent packages. library(party) # Create the input data frame. input.dat <- readingSkills[c(1:105),] # Give the chart file a name. png(file = "decision_tree.png") # Create the tree. output.tree <- ctree( nativeSpeaker ~ age + shoeSize + score, data = input.dat) # Plot the tree. plot(output.tree) # Save the file. dev.off()
Когда мы выполняем приведенный выше код, он дает следующий результат —
null device 1 Loading required package: methods Loading required package: grid Loading required package: mvtnorm Loading required package: modeltools Loading required package: stats4 Loading required package: strucchange Loading required package: zoo Attaching package: ‘zoo’ The following objects are masked from ‘package:base’: as.Date, as.Date.numeric Loading required package: sandwich
Заключение
Из дерева решений, показанного выше, мы можем сделать вывод, что любой, чей уровень чтения по навыкам чтения менее 38,3, а возраст более 6 лет, не является носителем языка.