>RE::VISION CRM

R 데이터 분석

[R 데이터 분석 연습] ctree 를 보기 좋게 수정하는 custom 함수 활용

YONG_X 2013. 2. 6. 19:06

 

# 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