R-의사 결정 트리

의사 결정 트리는 선택 항목과 그 결과를 트리 형태로 나타내는 그래프입니다. 그래프의 노드는 이벤트 또는 선택을 나타내고 그래프의 가장자리는 결정 규칙 또는 조건을 나타냅니다. 주로 R을 사용하는 기계 학습 및 데이터 마이닝 응용 프로그램에서 사용됩니다.

Decision Tress의 사용 예는 이메일을 스팸 또는 스팸이 아닌 것으로 예측하거나, 종양을 암성으로 예측하거나, 각각의 요인을 기반으로 신용 위험이 좋거나 나쁜 것으로 대출을 예측하는 것입니다. 일반적으로 모델은 학습 데이터라고도하는 관찰 데이터로 생성됩니다. 그런 다음 검증 데이터 세트를 사용하여 모델을 검증하고 개선합니다. R에는 의사 결정 트리를 만들고 시각화하는 데 사용되는 패키지가 있습니다. 새로운 예측 변수 집합의 경우이 모델을 사용하여 데이터의 범주 (예 / 아니요, 스팸 / 스팸 아님)에 대한 결정을 내립니다.

R 패키지 "party" 의사 결정 트리를 만드는 데 사용됩니다.

R 패키지 설치

R 콘솔에서 아래 명령을 사용하여 패키지를 설치하십시오. 또한 종속 패키지가있는 경우 설치해야합니다.

install.packages("party")

패키지 "파티"에는 기능이 있습니다 ctree() 데시 슨 트리를 만들고 분석하는 데 사용됩니다.

통사론

R에서 결정 트리를 만드는 기본 구문은 다음과 같습니다.

ctree(formula, data)

다음은 사용 된 매개 변수에 대한 설명입니다.

  • formula 예측 변수와 반응 변수를 설명하는 공식입니다.

  • data 사용 된 데이터 세트의 이름입니다.

입력 데이터

R 내장 데이터 세트를 사용합니다. readingSkills의사 결정 트리를 만듭니다. 그것은 우리가 변수 "연령", "신발 화", "점수"를 알고 있고 그 사람이 원어민인지 아닌지를 안다면 누군가의 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

결론

위에 표시된 의사 결정 트리에서 readingSkills 점수가 38.3 미만이고 연령이 6 세 이상인 사람은 원어민이 아니라는 결론을 내릴 수 있습니다.