빅데이터_Big Data

데이터 분석 방법론 (2) - 예시포함 (CRISP-DM)

The Yellow Lion King 2017. 2. 25. 18:00
반응형

데이터 분석 방법론 (2) - 예시포함 (CRISP-DM)

데이터 분석 방법론에 대한 개요와 자료는 많이 쉽게 찾을 수 있는데 실질적인 사례나 예시에 해당하는 내용은 접하기 어려운 것이 현실인 것 같습니다.
그도 그럴 것이 일반적으로 학교에서 분석을 한다고하면 R이나 Spss, SAS 등의 툴을 가지고 리포트를 작성하는 내용 정도가 공유될 수 있을 것 같은데 이것은 실제 산업 현장에서 쓰이는 항목과 내용의 리포트, 방법론과는 다른 차이가 있을 것 같습니다. (아니 어느정도는 달라야만 할 것 같습니다. 이론과 실전, 목적이 다르니깐요...^^)


하여간, 그래서 졸업 후 바로 기업 현장에 투입되서 분석을 업무로 하다보면 품질 수준의 차이과 절차 상의 문제 등이 이슈화 되어서 종종 목소리가 커지는 일이 생기는 것 같습니다. 이것은 마치 소프트웨어 공학에서의 개발 방법론을 준수하지 않고 대규모 프로젝트를 시행하게 될 경우 중간에 문제가 발생하여 관계자간 이견으로 목소리가 커지고 심하게 되면 프로젝트가 실패하고 더 심하면 소송까지 가게되는 안좋은 일이 생기게 되는 것과 유사하다고 생각됩니다.


이러한 이유로 실제 사례나 예시 등을 공부하고 준비하는 것은 중요하다고 할 수 있겠습니다.
그래서 다시보면 CRISP-DM과 같은 방법론이 중요하고요


그러나......


여기서 CRISP-DM 방법론에 대한 구체적인 내용 자체에 대한 설명은 가급적 조금하겠습니다.
왜그러냐하면 그 내용은 전에 포스팅한 것도 있고, 각 단계의 정의나 개요는 구글, 네이버를 찾아보시면 금방 나옵니다.
자료도 많고요.


따라서, 여기서는 각 단계에서 실제 분석 사례를 설명하면서 어떤 항목과 내용을 정리/진행했는지 말씀드려 보겠습니다.


참고) KDD, SEMMA, CRISP-DM 개념 관련해서는 이전에 작성한 아래 글을 참고해주세요.

https://bigdatamaster.tistory.com/11

 

데이터 분석 방법론 (KDD, SEMMA, CRISP-DM)

데이터 분석 방법론 (KDD, SEMMA, CRISP-DM) 데이터 분석 방법론 막상 데이터 분석을 하려고 하면 막막할 때가 많습니다...이럴때 미리 잘 정리된 절차와 방법을 따라서 하나씩 진행한다면 쉽게 접근할

bigdatamaster.tistory.com

 

 


1. 배경 및 목표 : 뭐 할라고??? 왜???

가. 비즈니스 배경 및 목적
경우에 따라 이러한 내용 뿐만 아니라 분석을 진행하려는 기업의 일반적인 정보에 대한 분석이 필요하기도 합니다. 비즈니가 처해있는 상황, 문제점, 사업 목표, 조직구성 등도 프로젝트를 완료하는데 도움이 됩니다.
예를 들면 대리점의 매출 저하로 인해 사업 성장에 문제가 발생하고 있어서 이를 개선하기 위한 니즈가 있을 수 있겠습니다.


나. 분석 목적 및 목표

왜 데이터 분석을 하려고하는가? 분석해서 무슨 효과를 내려고 하는가? 데이터 분석과 비즈니스와는 어떤 관계가 있는가? 이처럼 분석하려는 이유와 목적을 명확히 해야만 프로젝트에 혼선이 없고 힘을 집중할 수 있습니다. 
비즈니스 목적이 대리점의 매출을 증대 시키는 것이라고 하면, 분석 목적으로는 매출 증대가 가능한 대리점을 찾아내는 분석 모델이나 증대 가능한 정도를 예측하는 모델 수립을 목적으로 할 수 있겠습니다.
 

 

 

2. 데이터 이해 : 데이터 넌 어떻게 생겨먹었니?

 

가. 초기 데이터 수집


분석 목적에 따라 관련있는 데이터를 찾아서 수집해야합니다. 보통 기업에서는 데이터를 DBMS에 관리하기 때문에 업무담당자와 DBA를 통해서 필요하다고 생각되는 데이터를 확보할 수 있습니다. 일반적인 기업의 관점에서 ,,,데이터 성격 유형을 나누어 보면 고객 데이터, 상품 데이터, 구매 데이터, 로그 데이터 등이 있겠습니다. 이러한 데이터를 생성하고 보관하는 시스템으로 부터 데이터를 다운 받아서 확보합니다.
사례의 경우에도 영업시스템의 DBMS에서 데이터를 다운 받아서 초기 데이터를 수집하였습니다.



나. 데이터 기술


확보한 데이터가 어떤 데이터인지를 설명하는 자료를 만든다고 생각하시면 됩니다. 각각의 시스템, 테이블 별로는 몇건의 데이터가 들어있고 테이블의 항목은 어떤 것들이 있으며 데이터 유형(범주형, 연속형, integer, numeric, character 등)은 이렇다고 정리해 놓는 것입니다. 코드로 관리하는 것은 어떤 것들이 있으면 주요 코드의 해석은 이렇게 한다.등등. IT 시스템의 데이터 관리 측면에서 보면 Metadata와 데이터 품질에 해당하는 정보를 제공한다고 생각하면 이해가 쉬울 것 같습니다. 물론 통계 분석의 기술분석에 해당하는 정보들도 제공되면 좋습니다.



 

 

 


3. 데이터 전처리 : 지루하지만 중요한 작업, 장인 정신으로 한땀 한땀...

 

가. 데이터 정제
데이터를 클린징합니다. 일반적인 데이터의 문제로는 데이터 누락(데이터가 빠져있거나), 오류(엉뚱한 값이 들어있거나), 이해 부족(Metadata가 없어서 무슨 의미의 데이터 인지 모르는 경우) 등이 있을 수 있습니다.
대리점 코드가 빠져 있거나, 생성규칙에 안 맞는 이상한 대리점 코드가 들어 있거나, 이해할 수 없는 컬럼명이 있거나 하는 경우 입니다.
이러한 경우 정제 작업을 통해 데이터를 체워 넣고, 오류를 정정/변환하고, 생성원천을 찾아서 의미를 알아 냅니다.

나. 데이터 생성 / 통합
말 그대로 데이터를 만들고 통합해서 모델을 돌리기 좋게 만들어 놓습니다. 보통은 하나의 (파일) 데이터 셋으로 만들어 놓지요.


다. 데이터 확정
앞선 데이터 이해 단계를 통해 대상 데이터 종류(구분) 및 건수, 분석 기간, 분석 기준 시점 등을 정합니다.


팁으로 모든 활용 가능한 데이터를 분석할 수는 없습니다. 그리고 그럴 필요도 없습니다.
분석 목적에 맞게 최적의 대상 범위를 정하면 됩니다. 데이터 기간이 그렇고, 대상 종류도 그렇고, 데이터 건수이 그렇습니다.
데이터 기간은 분석 목적에 맞는 기간을 확보해야합니다. 다음 달의 대리점별 추정 매출액을 구하는 모델을 만들 경우 대리점 개점이후 모든 월 매출액 정보가 있어야만하는 것은 아닙니다. (필요하다고 다 있지도 않고요.^^) 직전월, 또는 직전 3개월, 6개월, 12개월 정도 기간의 데이터만 있어도 여러 분석 방법을 이용해서 돌릴 수 있습니다.
대상 종류와 건수도 목적에 맞게 조정해서 정하는게 모델의 정확도를 높일 수 있습니다. 예를 들면 수도권 대리점의 추정 매출이 필요하면 (당연하지만) 수도권의 대리점과 관련된 데이터만 처리하면 됩니다. 건수도 적용 알고리즘에 따라 조금씩 다르겠지만 일반적인 통계 분석의 경우 F검정 후 t검정을 통과하는 정도만으로도 성능에 차이가 크지 않습니다.
(물론 빅데이터 시대가 되면서 이러한 부분은 많이 안 중요해 지고 있습니다. 그냥 가능한 다 적용하는 거죠. 그래도 그보다는 빠르고 효과적인 분석을 원한다면 고려해보는게 좋습니다.)




4. 모델링 : 노른자, 붕어빵에 단팥...


가. 활용 모델링 기술 선정
적합한 모델링 기술을 정하기 위해 알아두면 좋은 질문들이 있습니다. 아래 질문을 통해서 어느 모델링 기술이 적합한지를 생각해 볼 수 있습니다.

  • 충분한 신뢰도를 만들 만한 데이터량을 가지고 있는가?
  • 일정수준 이상의 데이터 품질이 필요한 모델인가?
  • 보유 데이터가 특정 모델에서 사용하기에 적합한 형태인가?

마지막 질문의 답으로 적합하지 않은 데이터라 하더라도 데이터 변환 작업을 하면 모델에서 사용할 수 있게 만들 수는 있습니다. 그러나 이러한 변환에 따른 성능의 영향도를 고려해서 결정해야 합니다. 안그러면 억지로 돌린 꼴이 되니까요.
대리점 매출 추정 예에서는 Regression을 사용했습니다. 여러가지 요인들의 영향도를 파악해서 회귀식으로 만들었다.


나. 테스트 방안 설계 수립
어떤 모델링이 잘된 모델링인지 먼저 정해놓아야 딴소리가 없습니다.. 그러기 위해서 어떻게 테스트하고 쓸만한 모델인지를 평가하는 방법과 기준을 정해 놓아야 합니다.
즉, 모델링 기술에 따라 성능을 분석할 수 있는 지표를 미리 정하고 이 지표의 수준을 미리 정해 놓아야 합니다. 지도학습의 경우 (오분류표의) 오류율을 정하거나, 클러스터링 같은 비지도학습의 경우 실루엣이나 중심점과의 오차값 평균 등이 될 수 있겠습니다. 그리고 당연히 테스트를 위한 데이터는 별도로 만들어 놓아야 합니다. 보통은 모델 훈련 시 전체 분석 데이터의 70%를 이용해서 모델링하고, 나머지 30%를 테스트에 사용합니다.
사례에서도 7 대 3으로 나누어 진행했고 추정 매출액과 실제 매출액의 SME를 기준으로 10% +-를 목표로 잡았다.

 

 

5. 평가 : 얼마나, 무슨 의미가 있나??? 잘 한건가?

미리정해 놓은 폭표에 대비해서 어떻게 성과가 나왔는지를 정리하는 단계 입니다. 통계 모델의 입장에서 원하는 목표 성능은 나왔는지 그리고 이러한 성과가 비즈니스에 어떠한 의미를 주고 효과를 가져올 것인지 등을 정리하는 것 입니다.
그래서 제 생각에 이 단계에서는 성능 지표 분석과 모델/성능 최적화를 해야할 것 같습니다.
물론 많이 와서 전단계로 돌아가기 힘들지만 결국 이러한 순환/반복적인 작업이 바로 분석의 작업이고 의미있는 Insight를 찾아 내기 위한 활동이니까요. 이러한 경험과 노하우를 가지고 초기 데이터 정의, 전처리 단계 부터 여러 경우를 고려하면서 준비하면 빠르게 작업해 나갈 수 있습니다.


6. 발표/보고 : 이건 예술이야..!!!


드디어 마지막 단계인 Deployment 단게에 왔습니다.
이단계에서는 개발된 모델을 적용하여 결과를 확인하고 계속적인 관리를 위한 방법을 제시하는 단계 입니다. 간단히 말하면 완료 보고서를 쓰는 단계이지요. 프로젝트의 개요를 설명하고 비즈니스/데이터에 대한 이해 내용을 설명하고, 전처리 단계와 적용한 모델링 기술에 대한 내용을 설명하고, 결과로 나온 내용과 그 의미/시사점을 정리하면 됩니다. 마지막으로 향후 자동화 구축 방안 또는 모니터링 방안 등을 추가하여 보고하면 마무리 됩니다.


데이터 분석은 예술의 한 분야라고 생각합니다.
그림을 그리거나 글을쓰거나 또는 음악을 만들때 완벽한 것은 만들수 없습니다.
정말 드물게는 왼벽하다고 느낄 수도 있으나 일시적인 것이고 주관적인 입장에서만 그렇습니다.
데이터 분석도 그런 것 같습니다. 며칠 밤을 세워서 데이터를 정재하고 모델을 만들어도 마음에 쏙드는 결과를 얻는 것은 거의 물가능합니다. 다시 정재하고 보완하면 좋아질 수 있지만 이또한 완벽할 수 없지요.
그래서 방법론이라는 부분도 완벽할 수 없습니다. 모든 프로세스와 타스크를 체워 넣는다고해서 품질 좋은 모델이 만들어지는 것은 아닙니다.
결국 여러분이 진행하시려는 분석의 상황에 맞게 핵심 타스크를 잘 골라서 사용하시면 됩니다.
바로 예술적으로 말이죠....


도움이 되셨길 바라고 명품을 만드시길 바랍니다.

그리고 다른 글에서 실제 고객분석의 이론과 실무 방법을 알려드리겠습니다.




 

 

반응형