Учебники

R — Дерево решений

Дерево решений — это график, представляющий варианты и их результаты в виде дерева. Узлы на графике представляют событие или выбор, а края графика представляют правила или условия принятия решения. В основном используется в приложениях машинного обучения и интеллектуального анализа данных, использующих 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

Дерево решений с использованием R

Заключение

Из дерева решений, показанного выше, мы можем сделать вывод, что любой, чей уровень чтения по навыкам чтения менее 38,3, а возраст более 6 лет, не является носителем языка.