결정 트리 1) 수치
2) 분류형
ex) 타이타닉 호 탑승자의 성별, 나이, 배우자와 자녀의 수를 이용해서
생존 확률을 구분해 나가는 모형 "sibsp‟는 탑승한 배우자와 자녀의 수를 의미
지도 수치형 regression
분류형 classfication
어떤 속성을 먼저 던지냐에 따라 트리의 깊이가 달라진다.
여러 속성을 많이 고려 할 수록 오버 피팅이 발생할 수 있다.(너무 깊은 깊이까지 가면 안좋다.)
주어진 데이터의 학습을 통한 예측이 가장 중요하다.
단, 한가지의 경우도 실수가 나오지 않을 때까지 학습을 시키는 것이 목표이다.
의사결정 트리의 구성요소
1) 뿌리 마디 (root node) : 시작되는 마디로 전체 자료를 포함
2) 자식 마디 (cjilde node) : 하나의 마디로부터 분리되어 나갂 2개 이상의 마디들
3) 부모 마디 (parent node) : 주어짂 마디의 상위마디
4) 끝마디 (terminal node, leaf node) : 자식마디가 없는 마디
기계학습 계열의 판단 기준 : 불순도
의사 결정 트리 학습에서 각 노드에서 분기하기 위한 최적의 질문은 정보이득이라는 값이 최대가
되도록 만들어 주는 것이 핵심이다.
정보이득 = 부모의 정보이익 - 자식의 (정보이익*확률)의 합
데이터의 불순도 : 데이터가 제대로 분류되지 않고 섞여 있는 정도를 말한다. 정보이득 ig는 자식노드의 데이터의 불순도가 작으면 작을수록 커지게 된다.
기계학습에서는 불순도가 낮아지는 방향을 택하는 것이 중요하다.
데이터 불순도를 측정하는 다양한 방법
1) 지니 인덱스
2) 엔트로피
3) 분류 오류
의사 결정 분석의 장단점
장점 | 단점 |
•설명력이 높다. •결과에 대한 근거를 나뭇가지 형태로 추적할 수 있다. •빠르고 변수 선택 능력이 있다. •많은 변수들을 대상으로 종속변수에 영향이 높은 변수를 선택 할 수 있다. |
•종속변수가 연속형일 때 쓸 수 없다. •설명변수가 연속형일 때 낮은 예측능력을 보일 수 있다. 이분법적 사고로 인해 오류가 높을 수도 있다. •자료의 추가에 의하여 나무구조가 바뀔 수 있다. •비선형데이터에는 적합하지 못하다. |
#install.packages("caret",dependencies = T,repos ="http://cran.rstudio.com/")
library(caret)
idx <-createDataPartition(iris$Species, p = 0.7, list=F)
iris_train<-iris[idx, ]
iris_test<-iris[-idx, ]
table(iris_train$Species)
table(iris_test$Species)
library(rpart)
rpart.result <-rpart(Species~., iris_train)
rpart.result
plot(rpart.result,margin = 0.2)
text(rpart.result,cex=0.8)
install.packages("rattle")
install.packages("rpart.plot")
library(rattle)
library(rpart.plot)
library(RColorBrewer)
rpart.plot(rpart.result)
https://ratsgo.github.io/machine%20learning/2017/03/26/tree/
의사결정나무(Decision Tree) · ratsgo's blog
이번 포스팅에선 한번에 하나씩의 설명변수를 사용하여 예측 가능한 규칙들의 집합을 생성하는 알고리즘인 의사결정나무(Decision Tree)에 대해 다뤄보도록 하겠습니다. 이번 글은 고려대 강필성
ratsgo.github.io
'AI > 머신러닝' 카테고리의 다른 글
머신러닝 지도학습 비지도학습 (0) | 2021.05.17 |
---|