본문 바로가기
데이터 어쩌구/통계 ・ 수학

[실습] (5) 의사결정 나무 with R

by annmunju 2020. 12. 29.

#의사결정나무 실습 : 타이타닉호

 

install.packages("rpart")
install.packages("rpart.plot")
library(rpart)
library(rpart.plot)
titanic.df=read.csv("titanic.csv")

# 기본 나무
titanic.tr = rpart(Survived ~ Sex + Age + SibSp, titanic.df)
prp(titanic.tr, type=2, extra=1)
titanic.tr

 

# 예측해보기
predicted = predict(titanic.tr, type="class")
titanic.df$pred = predicted
table("pred"=titanic.df$pred, "actual"=titanic.df$Survived)

# 데이터셋 분할을 통한 정확도 검증
install.packages("caTools")
library(caTools)
set.seed(10)  #난수(seed)값 지정
index = sample.split(titanic.df$Survived, 0.7)
titanic.train = subset(titanic.df, index==T)
titanic.valid = subset(titanic.df, index==F)
titanic.tr = rpart(Survived ~ Sex + Age + SibSp, titanic.train)
prp(titanic.tr, type=2, extra=1) #훈련 데이터 세트 tree

# 훈련 데이터세트 정오행렬과 정확도
pred.train = predict(titanic.tr, type="class")
table(pred.train, titanic.train$Survived)  #정확도 계산 : (정확분류)/(전체)

# 검증 데이터세트에 모델 적용
pred.valid = predict(titanic.tr, newdata=titanic.valid, type="class")
table(pred.valid, titanic.valid$Survived)  

 

728x90