R
[디시전트리] R로 디시전트리(회귀) 사용해보기
excelsu
2022. 7. 28. 16:59
library(rpart)
#모델생성
result0=rpart(y~., data=rawdata, method="anova") ##anova는 연속형 데이터 예측, class는 분류
#시각화 (패키지 사용해 더 잘 그려보기)
plot(result0) ; text(result0) ##그래프 그리고 그 위에 분기점 text
summary(result0) ##마지막분기의 rel error의데이터 에서 1빼면 예측률
##파라미터 조정
crtl=rpart.control(minsplit=8, minbucket=4) #최소분기, 오분류 최소기준
result1=rpart(y~., data=rawdata, control=ctrl)
plot(result1) ; text(result1)
summary(result1)
##가지치기
rsq.rpart(result1) ##급격히 떨어지고 평지를 만나는 곳
result2=prune(result1,cp=평지를 만나는곳의 수치)
plot(result2); text(result2)
##예측
testval<-data.frame(test$y)
testval$pred<-predict(result2,rawdata[-train,])
testval