#의사결정나무 실습 : 타이타닉호
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
'데이터 어쩌구 > 통계 ・ 수학' 카테고리의 다른 글
[실습] (7) 군집분석 with R (0) | 2020.12.30 |
---|---|
[실습] (6) 로지스틱 회귀분석 with R (0) | 2020.12.30 |
[실습] (4-2) 다중 회귀 with R (0) | 2020.12.23 |
[실습] (4-1) 단순 회귀 with R (0) | 2020.12.23 |
[이론] (3) 데이터 마이닝 (0) | 2020.12.23 |