비투엔 기술기고

[기고] 데이터 분석 프로젝트를 준비하는 히치하이커를 위한 안내서

알 수 없는 사용자 2018. 3. 12. 13:36






들어가며


흘러내리는 빗물을 활용하는 것을 상상할 수 없던 시대가 있었다. 하지만 인류는 댐을 만들어 빗물을 모으고 정수 시설을 갖추면서 버려지던 빗물을 다양한 분야에 사용할 수 있게 만들었다. 4차 산업혁명이라 일컫는 융합기술의 발달로 다양한 산업에서 발생하는 거대한 데이터도 이러한 빗물과 마찬가지이다. 쏟아지는 데이터를 흘러내리지 않도록 잘 주워 담고 가공할 수 있는 생태계(시스템)를 만들 수 있다면 이를 활용해 기존에 발견하지 못한 유용한 가치를 창출할 수 있다.


다양한 산업에서 시스템에 쌓여있는 데이터를 분석하기 위해 KDD, CRISP-DM과 SEMMA 등의 방법론을 따라 데이터 마이닝을 이미 수행하고 있지만, 빅데이터의 활용 범위가 넓어지며 마이크로소프트, SAS와 같은 데이터 분석 특화 조직은 프로젝트를 좀 더 효율적으로 수행하기 위해 자체 프레임워크를 만들어 분석 방법론과 분석 경험을 관리하고 있다.


이에 본 기고에서는 빅데이터 분석을 위한 프레임워크를 개괄해보고 프로젝트 수행을 앞두고 있는 사람들이 준비해야 하는 것이 무엇이 있는지 체감할 수 있는 안내서(데이터 분석 프레임워크)를 살펴보고자 한다.




[데이터 분석 프레임워크]



위의 그림은 기존의 데이터 마이닝 방법론과 데이터 분석 프로세스를 혼합하여 만들어진 프레임워크이다. 프레임워크는 사용자에게 목적 달성을 위한 방향을 제공하고, 프로세스 진행 도중 변화된 상황에 적응하여 업무를 유연히 진행할 수 있는 지침의 역할을 한다. 또한 프레임워크는 각 단계별 발생되는 산출물 템플릿을 관리하여 프로젝트를 진행하며 만들어지는 결과물을 자산화 할 수 있다. 각 단계를 살펴보며 프레임워크를 이해해보면 다음과 같다.




1. 비즈니스 이해





'비즈니스 이해'는 프로젝트에 착수하기 전 프로젝트의 배경을 조사하고 문제를 파악하여 문제 해결을 위해 구성원들과 함께 나아가야 할 방향을 정리하는 과정이다. 비즈니스 이해의 세부 단계를 살펴보면 아래와 같다.


첫 번째, '문제 정의' 단계에서는 문제에 대한 질문을 작성하여 데이터 과학으로 해결할 수 있는 문제를 정의한다. 세계적인 연구 업적을 남긴 아인슈타인은 '내게 문제 해결을 위해 한 시간이 주어진다면, 55분 동안 문제에 대해 생각하고 5분 동안 해결책에 대해 생각하겠다'는 말을 남겼을 만큼 문제 해결에 앞서 명확히 문제를 정의하는 과정을 강조하였다. 해결 과정에서의 불확실성이 큰 데이터 문제의 특성상, 제대로 된 문제 정의는 더욱 중요하다. 


두 번째, '목표 설정' 단계이다. 앞서 정의한 문제 정의를 바탕으로 데이터에 기반한 문제 해결 목표를 설정한다. 예를 들면, 고객이 원하는 목표가 데이터 세트의 특정 변수를 예측하는 것인지, 데이터값에 따른 분류를 수행해야 하는지 확인하여 목표 달성이라 판단할 수 있는 성공 척도(Success Matrix)를 정하는 것이다. 목표 설정은 시간과 비용을 고려하여 측정 가능하고 구체적일수록 프로세스 진행에 도움이 된다. 또한 이 단계에서 프로젝트 구성원들의 R&R을 정리하고, 이에 따른 마일스톤을 작성하여 구성원들이 프로젝트의 전반적인 흐름을 파악할 수 있도록 하는 것이 중요하다.


마지막은 '데이터 소스 식별' 단계로 문제 해결에 필요한 데이터 원천(Source)이 무엇이고 어디에 있는지 정리하는 단계이다. 목표 해결을 위해 필요한 데이터가 어디에 존재하고 어떻게 사용할 수 있을지 데이터 소스 식별과정에서 정리를 한다. 필요한 데이터가 외부 데이터일 경우 어떠한 과정을 통해 분석 환경으로 데이터를 가져올 수 있을지 이 단계에서 충분히 고민하고 정리해 두어야 한다.




2. 데이터 취득 및 이해





'데이터 취득 및 이해'는 필요한 데이터를 데이터 분석 환경으로 가져와 수집된 데이터 품질을 점검하고 비즈니스 전문가가 발견하진 못한 데이터 문제와 데이터 간의 새로운 패턴을 발견하는 과정이다. 이 단계는 다음 단계인 분석 모델링에 사용될 수 있는 데이터 세트를 구성하기 위한 기반을 만드는 것으로 볼 수 있다. 


먼저, '데이터 수집' 단계는 문제 해결을 위해 앞서 식별한 데이터 소스를 분석 환경으로 이동하는 과정이다. 데이터의 다양한 타입(정형, 반정형, 비정형)과 수집되는 플랫폼에 따라 다양한 데이터가 처리 기법이 요구된다. 


두 번째는 '데이터 전처리' 단계이다. 앞서 데이터를 처리하는 단계에서 변환(Transformation) 작업이 함께 일어날 수 있지만, 이동된 데이터에서 품질상의 문제와 숨겨진 패턴을 발견하기 위해선 데이터를 올바르게 전처리하는 과정이 중요하다. 이 단계에서 주로 수행되는 작업은 데이터 클리닝, 데이터 변환, 데이터 감소, 데이터 이산화, 텍스트 정리 등의 작업을 진행하고, 다음 단계인 데이터 탐색 단계를 진행하며 데이터 전처리 단계를 반복적으로 수행하는 경우가 있다.


세 번째 '데이터 탐색' 단계에서는 주어진 데이터를 활용하여 현상에 대한 다양한 패턴을 발견하는 것이다. 이는 통계학에서  '탐색적 데이터 분석(Exploratory Data Analysis)이라 불리며, 데이터를 통해 이루고자 하는 목표와 관계없이 기본적으로 꼭 거쳐야 하는 과정이다. 그리고 이 과정에서 비즈니스 전문가가 파악하지 못한 데이터의 문제점이나 한계가 밝혀지는 경우가 있다.


마지막은 '데이터 파이프라인 설정' 단계로 데이터 분석에 필요한 원천 데이터 소스가 파이프라인을 통해 분석 환경으로 문제없이 이동할 수 있도록 소프트웨어적으로 설계하는 단계이다. 이 단계에서 모델링에 사용될 알고리즘에 따른 데이터의 이동 경로와 모델에 적용되는 데이터 생성의 특성 등을 미리 파악하고 있다면 시스템을 설계하는데 시행착오를 줄일 수 있다.





[머신러닝 파이프라인 데이터 이동경로 (출처:아이티월드)]




3. 모델링 및 검증




'모델링 및 검증'은 데이터 세트를 데이터 분석 목적에 맞는 알고리즘에 적용하여 모델링하고 그 결과를 검증하는 과정이다. 앞서 진행된 단계에서 문제 해결을 위해 필요한 준비물을 잘 정리했다면 이 단계에서는 그 준비물을 다양한 방법으로 활용해 보는 것이다. 그리고 모델 결과를 향상 시키기 위해 새로운 변수 특성을 추가하거나 분석에 필요한 최적화된 데이터 변수를 선별해 분석 결과를 확인해보고 최적의 모델이 무엇인지 검증해보는 단계라 할 수 있다.  


첫 번째 단계인 '피쳐 엔지니어링' 단계에서는 주어진 데이터 변수 외에 집계, 변환 변수와 같은 특징(피쳐)을 이용하여 학습 알고리즘의 예측 능력을 향상시키는 것이 주 목적이다. 즉 모델을 만든 후 모델에 적용할 데이터 세트에 어떤 특징(피쳐)를 추가하여 예측하면 성능이 향상될지 피쳐 리스트를 정리한 후 모델에 적합한 피쳐를 선택하여 모델링을 진행한다. 


두 번째는 문제 해결을 위해 어떤 알고리즘을 선택하면 좋을지 '알고리즘을 선정'하는 단계이다. '비즈니스 이해' 단계에서 문제 해결을 위한 질문과 목표 설정 내용을 바탕으로 어떠한 알고리즘이 필요한지 추적해 나가는 과정이 필요하다. 문제 해결을 위한 알고리즘 탐색은 한 장의 페이지로 분석 목적에 따라 원하는 알고리즘을 찾을 수 있는 치트 시트의 형태로 확인할 수 있으며, 마이크로소프트나 SAS에서 제공하는 '머신러닝 알고리즘 치트 시트'를 참고하여 모델 학습에 필요한 알고리즘을 찾아 나갈 수 있다.





 [MS, SAS 알고리즘 치트 시트]



또한, 알고리즘을 선택하기 전 고려해야 할 사항으로 '정확도', '학습시간', '선형성 여부' 그리고 '사용의 용이성' 등이 대표적이다. 초급자의 경우 실행하기 쉽고 가장 잘 알고 있는 익숙한 알고리즘에 초점을 맞추는 경향이 있지만, 일부 결과를 얻은 후 데이터에 익숙해진 상태라면 정교한 알고리즘을 사용하는데 시간을 더 할애하여 정확도 및 학습 시간을 개선 시킬 수 있도록 하는게 중요하다.


마지막 단계인 '모델 학습 및 검증' 에서는 선정된 알고리즘에서 만들어진 모델에 데이터 세트를 학습하고, 결과를 검증하여 최상의 솔루션을 결정하는 단계이다. 모델 학습 프로세스는 아래의 4가지 순서를 거치며 진행되며 필요에 따라 피쳐 엔지니어링을 추가하는 등 앞서 진행되었던 작업을 반복하며 모델 학습이 진행된다. 


- 데이터 분할 : 모델링을 위해 데이터 세트를 학습용 세트와 테스트 세트로 임의로 분할

- 모델링 : 학습 데이터 세트를 사용하여 모델 빌드

- 평가 : 다양한 튜닝 매개 변수를 적용한 학습 알고리즘을 통해 학습 및 테스트 데이터 세트 평가

- 솔루션 결정 : 모델 결과들 간 성공 메트릭을 비교하여 "최상"의 솔루션 결정


모델링 평가 방법을 좀 더 상세히 살펴보면 대표적으로 '평가 메트릭', 'ROC커브', '교차검증'을 통해 각 모델 데이터의 특성과 과적합 가능성 등을 고려한 모델 평가를 진행 할 수 있다. 




4. 배포


프레임워크의 마지막 단계인 '배포' 과정은 최종 모델을 사용 환경으로 배포하는 과정으로 분석 환경에서 수행한 작업을 고객 승인을 거쳐 실제 업무환경에서 구현할 수 있도록 모델을 직접 운영하는 과정이다.


'모델 운영' 단계에서는 앞서 확보한 성능이 우수한 모델을 응용프로그램을 통해 실제 업무 환경이나 이와 유사한 환경에서 모델을 직접 운행해볼 수 있도록 환경 구현을 하는 단계이다. 모델 배포를 위해 Open API 인터페이스를 사용하면 '온라인 웹사이트', '스프레드시트', '대시보드', '기간 업무 응용 프로그램', '백 엔드 응용 프로그램' 등 다양한 응용 프로그램에서 모델을 사용할 수 있다. 또한 배포되는 데이터 파이프라인에 원격 분석 및 모니터링과 같은 기능을 구현한다면 후속 시스템 상태 보고나 문제 해결에 도움이 될 수 있다.




마치며


프레임워크는 기존에 알고 있던 방법론들과 달리 프로세스의 흐름이 좀 더 느슨하지만, 상황에 따라 좀 더 역동적이고 융통성 있게 프로젝트를 전개할 수 있다. 데이터 분석 프로젝트는 주어진 문제에 대해 다양한 머신러닝 모델을 적용하여 여러 번의 시행착오(Trial-and-error)와 Data에 기반한 튜닝을 반복 진행하여 더 나은 결과를 찾아야 하는 작업이 일반적이다. 그 특성상 데이터 분석 프레임워크는 복잡한 문제를 유연하게 접근하여 구성원들이 길을 헤매지 않고 다음 단계로 잘 나아가도록 돕는 안내서의 역할을 하는데 더 적합하다. 또한, 단순히 안내서의 역할에 그치지 않고 각 단계에서 수행되는 작업 경험과 노하우를 축적하여 재사용성을 강화한다면, 지식 관리 시스템의 형태로 작동하여 프로젝트의 생산성을 더 높일 수 있을 것이다.


앞서 흘러내리는 빗물을 잘 주어담아 활용하는것이 경쟁력이 되는 세상이 되었다고 하였다. 이를 실현하기 위해 데이터 분석 프로젝트를 준비하는 사람들은 문제에 접근하는 안내서를 조직에 내재화하여, 얼마나 구체적인 방법으로 어떻게 문제를 풀어나갈 것인지 고민해 보는 것이 경쟁적 우위를 만들어나가는 시작점이 될 것이다.




▶ 참고자료 


- [도서] 헬로 데이터 과학(한빛미디어, 김진영)

- [도서] R을 이용한 데이터 처리 & 분석 실무(도서출판 길벗, 서민구)

- [웹자료] Microsoft Team Data Science Process lifecycle

- [웹자료] IT월드 - “데이터 입력, 지능 출력” 알기 쉽게 설명하는 머신러닝 파이프라인

- [웹자료] SAS 블로그 - 최적의 ‘머신러닝 알고리즘’을 고르기 위한 치트키

- [웹자료] 조대협의 블로그 - 선형회귀분석을 통한 머신러닝의 기본 개념 이해