59doit

[ R ] 의사결정나무 조건부 추론나무 #3 예제 본문

통계기반 데이터분석

[ R ] 의사결정나무 조건부 추론나무 #3 예제

yul_S2 2022. 11. 29. 13:14
반응형

조건부 추론나무

 

# 패키지 

install.packages("rpart")
library(rpart)
install.packages("rpart.plot") 
library(rpart.plot)

 

# sampling

data(iris)
str(iris) 
set.seed(1000) 
sampnum <- sample(2, nrow(iris), replace=TRUE, prob=c(0.7,0.3))
sampnum 

 

 

# training & testing data 구분

trData <- iris[sampnum==1,] 
teData <- iris[sampnum == 2, ] 

shortvar <- Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width

 

 

# 학습

citreeResult <- ctree(shortvar, data=trData)

 

 

# 예측값과 실제값 비교

table(predict(citreeResult), trData$Species)
#                setosa versicolor virginica
# setosa          36            0            0
# versicolor       0           35           4
# virginica         0            1          30

citreeResult2 <- ctree(shortvar, data=teData)

 

 

# 테스트 데이터를 이용하여 분류

forcasted2 <- predict(citreeResult2, data=teData)

 

 

# 예측결과와 실제값 비교

table(forcasted2, teData$Species) 
# forcasted2   setosa versicolor virginica
# setosa                14            0           0
# versicolor             0           14          1
# virginica               0            0         15

 

# 시각화

plot(citreeResult2)

 

 

# 해석

종(Species) 판단
Petal.Length <= 1.9 : setosa로 판단
Petal.Length > 1.9 & Petal.Width <= 1.6 : versicolor로 판단
나머지: virginica 로 판단
반응형
Comments