11-2. 의사결정나무 (Decision Tree) 2
2) 의사결정나무 - rpart 패키지
- 의사결정나무 실행패키지 : rpart, party 패키지 (tree패키지 외 사용)
install.packages("rpart")
install.packages("party")
library(rpart)
library(party)
- 의사결정나무 함수 : rpart (종속변수~x1+x2+x3+x4, data= )
cl1<-rpart(Species~., data=train)
plot(cl1)
text(cl1, cex=1.5)
rpart 함수는 가지치기를 해서 나온 결과
-> 데이터에 따라 부가적인 가지치기가 필요할 수도 있음
*tree패키지에서 pruning한 결과와 동일
- rpart패키지는 과적합의 우려과 있으므로 pruning을 해줘야 함(iris의 경우 필요없음)
- printcp에서 xerror(cross validation error)의 값이 최소가 되는 마디를 선택
printcp(cl1)
plotcp(cl1)
- rpart결과에서 복잡도계수에 기반한 최적 가지치기
- rpart를 사용한 최종 tree모형 (iris data)
pcl1<-prune(cl1, cp=cl1$cptable[which.min(cl1$cptable[,"xerror"]),"CP"])
plot(pcl1)
text(pcl1)
tree함수를 이용한 최종모형과 동일한 tree결과
- 의사결정나무결과 정확도 : test data에 대한 정확도
pred2<- predict(cl1,test, type='class')
confusionMatrix(pred2,test$Species)
3) 의사결정나무 - party 패키지
- 의사결정나무 실행 패키지 : party 패키지 (tree패키지 외 사용)
help(ctree)
- 의사결정나무 함수 : ctree (종속변수~x1+x2+x3+x4, data= )
partymod<-ctree(Species~.,data=train)
plot(partymod)
두개가 섞여있는 경우 불순도가 크다고 할 수 있음
- party 패키지를 이용한 결과
partymod
- 의사결정나무결과 정확도 : test data에 대한 정확도 (party 패키지 사용)
partypred<-predict(partymod,test)
confusionMatrix(partypred,test$Species)
'공부 > R & Python' 카테고리의 다른 글
13-1. 군집분석-군집분석과 유사성척도 (0) | 2020.03.05 |
---|---|
12-3. 랜덤포레스트 (Random Forest) (0) | 2020.03.04 |
12-1. 의사결정나무와 랜덤 포레스트-의사결정나무 (Decision Tree) 1 (0) | 2020.03.04 |
11-3. 서포트벡터머신 3 (Support Vector Machine) (0) | 2020.03.04 |
11-2. 서포트벡터머신 2 (Support Vector Machine) (0) | 2020.03.04 |