# ctree를 사용한 디시젼트리는 트리 플롯을 그렸을때 터미널 노드간의 오버랩이 발생되며
# 노드의 통계값이 잘 보이지 않는 문제가 골칫거리임
# 이를 해결하기 위해 아래의 custom function을 활용하면 말끔해짐
# 링크 : http://stackoverflow.com/questions/13772715/show-volume-in-each-node-using-ctree-plot-in-r
innerWeights <- function(node){
grid.circle(gp = gpar(fill = "White", col = 1))
mainlab <- paste( node$psplit$variableName, "\n(n = ")
mainlab <- paste(mainlab, sum(node$weights),")" , sep = "")
grid.text(mainlab,gp = gpar(col='red'))
}
# 데이터는 RFM 분석 모델을 위해 사용되었던 것. 샘플수가 3800명 가량이라 복잡한
# 트리가 생성되었던 데이터 임
dt001 <- ctree(v_mf ~ v_r+v_f+v_m, data=tb_tr0011, controls = ctree_control(maxdepth = 5))
plot(dt001, type='simple', inner_panel = innerWeights)
# 이번에는 깨끗하게 트리 플롯이 보여짐
# plot에 type='simple' 옵션이 추가 되면서 터미널 노드에 값만 표시
# 노드별 값도 깨끗하게 보이고, 터미널 노드의 샘플수와 평균값도 깨끗하게 보임
# type 옵션을 사용하는 대신 출력한 파일에서 해상도 조절을 통해 처리 하는 방법
# res 옵션을 조절하고 height를 조절해서 이미지 파일을 생성
png("dt001.png",res=60,height=400,width=1600)
plot(dt001)
dev.off()
# 폰트 사이즈는 조금 작아지더라도 오버랩이 없어 숫자나 그래픽을 정확하게 식별하는 것
# 가능해짐
# last update : 2012. 2. 6
'R 데이터 분석' 카테고리의 다른 글
[R 데이터 분석 연습] 텍스트로 부터 워드클라우드 그리기 연습 (0) | 2013.02.14 |
---|---|
[R 데이터 분석 연습] 플롯과 heatmap을 통한 추가적 EDA 탐색적 분석 (0) | 2013.02.08 |
[R 데이터 분석 연습] RFM 데이터 준비와 모델링 (0) | 2013.02.05 |
R 디시젼 트리 기본적인 옵션 활용 (0) | 2013.02.02 |
R 마이닝 첫경험[?] [디시젼트리 만들기] (0) | 2013.02.01 |