래피드마이너 데이터 초간편 분석 7편의사결정나무(Decision Tree) 모델링~!!데이터 분석 과정은 크게 6가지로 위의 그림과 같이 진행됩니다.지난 6편에서 데이터 전처리 하는 방법에 대해 알아보았는데요!데이터 전처리 단계가 끝나게 되면 모델링 단계로 들어가게 됩니다.저희는 의사결정나무(Decision Tree)라는 알고리즘을 가지고 모델링을 진행해보도록 하겠습니다.먼저, 데이터를 불러옵니다.저장소 패널에서 데이터 폴더를 클릭하고 Customer data를 파라미터 패널로 드래그 앤 드롭합니다.모델을 만들기 전에는데이터를 확인하고 추가적으로 필요한 작업이 없는지 확인을 하여야 합니다.출력포트와 결과포트를 연결하고 프로세스를 실행시켜 결과를 확인합니다.실행결과, label 칼럼에 missing 값이 있는 것을 볼 수 있습니다.모델을 구축하는 데는 label 값이 missing이 아닌 데이터만을 사용하기 때문에필터를 걸어 데이터 필터링을 해주어야 합니다.패널에 'Filter Examples' 오퍼레이터를 드래그 앤 드롭하고파라미터 패널에서 'Churn'이 missing이 아닌 값으로 필터를 걸어줍니다.프로세스를 실행하여 Statistics 탭을 보면모든 칼럼의 missing 값이 없어진 것을 확인할 수 있습니다.데이터 준비가 끝났으니이제 의사결정나무(Decision Tree)를 만들어 보도록 하겠습니다.의사결정나무에 대해서 간단하게 설명드리면의사결정나무(Decision Tree)는 의사결정 규칙을 나무구조로 도표화하여 분류와 예측을 수행하는 분석방법입니다.위의 그림처럼 모양이 나무와 비슷해서 의사결정나무라고 불립니다.의사결정나무는 '조건 A이고 조건 B이면 C이다' 라는 형태의 규칙으로 표현되기 때문에사용자가 쉽게 이해할 수 있다는 장점을 가지고 있습니다.의사결정나무를 만들어 볼까요?오퍼레이터 패널에서 Decision Tree를 찾아 파라미터 패널로 드래그 앤 드롭합니다.'Decision Tree' 의 파라미터는 일단 조정하지 않고 프로세스를 실행해 보도록 하겠습니다.실행결과, 엄청나게 복잡한 의사결정나무가 그려진 것을 볼 수 있습니다.파라미터를 조정하여 간단한 의사결정나무를 만들어 보겠습니다.Decision Tree 오퍼레이터를 클릭하고파라미터 패널의 'maximal depth'를 5로 설정해주고 프로세스를 실행합니다.'maximal depth' 파라미터는 나무의 깊이즉, 가지를 이루고 있는 마디의 개수를 이야기 합니다.실행 결과, 다음과 같이 maximal depth가 5층으로 조정되어의사결정나무가 줄어든 것을 확인할 수 있습니다.이번에는 다른 방법으로 의사결정나무를 줄여보도록 하겠습니다.이번에는 'maximal depth'는 10으로 그대로 두고'minimal gain'을 0.1로 설정해줍니다.'minimal gain' 의 값이 높을수록분할이 줄어들기 때문에 트리가 작아지게 됩니다.하지만, 너무 높은 값을 설정하게 된다면 단일 노드의 나무가 생성되기 때문에 주의하여야 합니다!앞서 실행했던 결과와 다른 의사결정나무가 그려진 것을 확인할 수 있는데요!이처럼 여러 파라미터 옵션들을 조정하여 의사결정나무를 만들 수 있습니다.파라미터에 대한 더 자세한 내용은 래피드마이너 Document를 참고하시기 바랍니다~~!!↓↓↓↓https://docs.rapidminer.com/latest/studio/operators/modeling/predictive/trees/parallel_decision_tree.html 의사결정나무를 더 자세히 살펴보도록 하겠습니다.Decision Tree의 가장 맨 위에 나타나 있는 칼럼이label('Churn')을 분류하는데 가장 중요한 변수라고 할 수 있습니다.해당 트리에서는 'Gender' 칼럼이 가장 중요한 변수입니다.맨 위의 노드를 보면성별이 남성이면 고객의 충성도가 높은 것으로 나타납니다.파란색, 빨간색의 막대에 마우스를 대고 있으면 막대에 대한 세부 정보가 나오게 됩니다.세부정보에는 성별이 남성인 고객이 총 493명이며,이 중에 439명이 충성스러운 고객이고 54명이 이탈한 고객이라는 것을 확인할 수 있습니다.충성스러운 고객의 비율이 더 많기 때문에 나무에 loyal이라고 표시가 되고충성스러운 고객으로 분류가 됩니다.만약 새로운 고객이 들어온다면 충성스러운 고객과 이탈할 고객 중 어느 쪽으로 분류될까요?'Anny'라는 새로운 고객을 분류해 보도록 하겠습니다.'Anny'는 여성이며 39살이고 한달 전에 우리와 마지막으로 연락한 고객입니다.의사결정나무를 보면 'Anny'가 여성이고 나이가 89.5세보다 젊지만 30.5세 보다는 많기 때문에이탈할 고객으로 분류를 하게 됩니다.그렇다면 'Anny가 29살이고 신용카드를 사용한다는 정보를 추가하여 예측해 보도록 하겠습니다.의사결정나무를 보면 'Anny'가 여성이고 나이가 89.5세 보다 젊고 30.5세 보다도 젊기 때문에'Last Transaction' 칼럼으로 넘어가게 됩니다.'Anny'의 'Last Transaction'이 30일으로 179.5일 보다는 작지만 14일 보다 크고신용카드로 결제하기 때문에'Anny'를 충성스러운 고객이라고 분류하게 됩니다.Description 탭을 클릭하면 Decision Tree 분류 과정이 서술되어 있습니다.앞서 29살이고 신용카드를 사용하는 'Anny'를 분류하는데 사용된 노드에서는총 87개의 데이터 중 73명이 충성스러운 고객이고 14명이 이탈한 고객이라는 것을 확인할 수 있습니다.마지막으로 지금까지의 프로세스를 저장시켜 보도록 하겠습니다.프로세스 폴더에서 Store Process Here을 클릭하고'02-build decision tree'라는 이름으로 저장해줍니다.지금까지 의사결정나무를 만들어 보았습니다~~~!더 궁금하신 점이 있다면플랜투 비즈니스컨설팅으로 문의주세용~!!