728x90
02. 데이터 분석 준비하기¶
◇ 08. 분석 프로젝트 준비 및 기획¶
8.1 데이터 분석의 전체 프로세스¶
- 데이터 분석의 궁극적인 목표는 의사결정 프로세스를 최적화하는 것
- 일반적인 데이터 분석 프로젝트의 프로세스 : 설계 단계 ⇒ 분석 및 모델링 단계 ⇒ 구축 및 활용 단계
- 설계 단계 : 무엇을 하고자 하는지를 명확히 정의하고 프로젝트를 수행할 인력 구성, 실무자와 분석가 간 협의체계가 잘 이루어져야함
- 분석 및 모델링 단계 : 데이터 분석 단계에서는 데이터 추출, 검토, 가공, 모델링 등의 세부 절차와 부분 반복이 필요, 특히 모델의 비즈니스 적합성을 심도 있게 분석하고 성능을 평가하는 것이 중요, 이러한 절차에는 KDD 분석 방법론, CRISP-DM 방법론, SAS사의 SEMMA 방법론 등 다양한 기존의 방법론 존재
- 구축 및 활용 단계 : 최종적으로 선정된 분석 모델을 실제 업무에 적용하고 그 성과를 측정, 분석 모델을 적용하기 위한 IT 시스템 구축이 필요하며 예상 개선 효과를 측정할 때 시스템 적용을 위한 비용도 함께 고려해야함, 보통 A/B 테스트를 통해 모델 성과를 측정
- CRISP-DM 방법론
- 1단계(비즈니스 이해) : 현재 상황 평가, 데이터 마이닝 목표 결정, 프로젝트 계획 수립
- 2단계(데이터 이해) : 데이터 설명, 데이터 탐색, 데이터 품질 확인
- 3단계(데이터 준비) : 데이터 선택, 데이터 정제, 필수 데이터 구성, 데이터 통합
- 4단계(모델링) : 모델링 기법 선정, 테스트 디자인 생성, 모델 생성, 모델 평가
- 5단계(평가) : 결과 평가, 프로세스 검토, 다음 단계 결정
- 6단계(배포) : 배포 계획, 모니터링 및 유지 관리 계획, 최종 보고서 작성, 프로젝트 검토
- SAS SEMMA 방법론
- Sampling 단계 : 분석용 데이터 추출, 데이터 분할 및 병합, 대표성을 가진 분석용 데이터 생성, 학습, 검증, 테스트셋 분할
- Exploration 단계 : 데이터 탐색, 변수 간의 관계 파악, 적합한 변수 선정, 비즈니스 아이디어 도출 및 분석 방향 수정
- Modification 단계 : 결측값 처리 및 최종 분석 변수 선정, 데이터 가공, PCA 등을 통한 새로운 변수 생성
- Modeling 단계 : 적합성 검토, 분석 알고리즘 적용, 데이터 형태에 따라 알맞은 모델 선정, 모델 세부 옵션 설정
- Assessment 단계 : 구축 모델의 성능을 평가, 비즈니스 상황에 맞는 임계치(cut off) 설정, 비즈니스 인사이트에 적용, 상황에 따라 추가적인 분석 수행
8.2 비즈니스 문제 정의와 분석 목적 도출¶
- 프로젝트 시작 전 현재의 문제를 명확하게 정의하고, 그에 맞는 데이터 분석 목적을 설정해야 함 ⇒ 비즈니스 이해 및 문제 정의가 조금이라도 잘못되면 최종 인사이트 도출 및 솔루션 적용 단계에서 제대로 된 효과를 보기 힘듦
- MECE(Mutually Exclusive Collectively Exhaustive) : 논리적 접근법으로 가장 널리 쓰이는 방식으로 세부 정의들이 서로 겹치지 않고 전체를 합쳤을 때는 빠진 것이 없이 완전히 전체를 이루는 것을 의미
- 비즈니스 문제는 현상에 대한 설명으로 끝나서는 안되고, 본질적인 문제점이 함께 전달되어야 함
- 페이오프 매트릭스(Pay off Matrix) : Grand Slam(고 성과, 높은 실행가능성)를 우선 선정, Extra Innings(고 성과, 낮은 실행가능성) 일부 선정, Stolen Base(저 성과, 높은 실행가능성), Strike Out(저 성과, 낮은 실행가능성)의 과제는 제외
8.3 분석 목적의 전환¶
- 분석 프로젝트의 방향은 언제든 바뀔 수 있다는 것을 염두에 두어야 함
- 분석 프로젝트를 수행하는 동안에는 실무자들 간의 커뮤니케이션 및 협력이 매우 중요
8.4 도메인 지식¶
- 도메인 지식이란 해당되는 분야의 업에 대한 이해도
- 해당 분야의 특성과 프로세스를 제대로 파악하지 못한 상태에서는 문제 정의와 분석 목적이 1차원적일 수밖에 없음, 또한 도메인 지식이 없는 상태에서는 분석 결과가 어떠한 의미를 가지는지, 어떻게 활용될 수 있는지 알기 힘듦
- 도메인 지식을 효과적으로 습득하기 위한 방법
- 실무자와 잦은 미팅과 함께 적극적인 질문과 자료 요청 필요
- 관련 논문들을 참고하여 해당 도메인에 대한 심도 있는 지식 습득
- 현장에 방문해 데이터가 만들어지는 과정을 직접 보는 것
- 기본적으로 데이터가 생성되는 현장을 직접 보고 소비자 혹은 사용자의 입장이 되어 경험을 해보는 것이 중요
8.5 외부 데이터 수집과 크롤링¶
- 기업에서 내부 데이터를 활용하여 인사이트를 도출하는 경우 데이터의 부족으로 한계를 느끼는 경우 다수 존재, 그래서 외부 데이터 활용
- 분석 목적을 명확히 정의하고, 이에 맞는 외부 데이터를 찾고 수집해야 함
- 외부데이터 수집 방법
- 데이터를 판매하는 전문 기업으로부터 구매 또는 MOU 등을 통해 데이터를 공유
- 공공 오픈 데이터를 활용 ⇒ 원하는 형태로 가공하기 위한 리소스가 많이 들 수 있고 활용성이 높은 데이터를 얻을 확률이 낮음
- 웹에 있는 데이터를 크롤링하여 수집 ⇒ 프로그래밍이 필요하며 해당 웹페이지가 리뉴얼되면 코드 수정 및 법적인 이슈도 함께 고려해야함
- 크롤링은 스크래핑(scraping)이라고도 부르며 엄미라게 구분하면 두 방식은 차이가 존재
- 크롤링은 주어진 페이지 내에 있는 링크들을 따라가면서 모든 내용을 가져오는 것이며 스크래핑은 웹 페이지에서 자신이 원하는 부분의 정보만 가져오는 것
◇ 09. 분석 환경 세팅하기¶
9.1 어떤 데이터 분석 언어를 사용하는 것이 좋을까?¶
- SAS : 대표적인 제품형 데이터 분석 솔루션, 1976년에 생겨나 역사가 깊고 상용 솔루션으로 신뢰도가 높음, 딥러닝, 인공신경망 분석에서는 R, 파이썬보다 부족함,
- R : 오픈소스 데이터 분석용 언어로 통계적 기능이 우수하며 데이터 시각화에 특화됨, 활발한 커뮤니티를 활용하여 궁금증 해결 가능
- 파이썬 : C 언어로 구현된 프로그래밍 언어, 매우 유연한 언어, C 언어보다 10~350배 정도 느림, 시각화 측면에서는 R에 비해 구현이 복잡하고 직관적이지 못함
- SQL : 관계형 데이터베이스 시스템에서 데이터를 관리 및 처리하기 위해 설계된 언어, 대화식 언어로 명령문이 짧고 간결
9.2 데이터 처리 프로세스 이해하기¶
- 데이터 분석가는 데이터 분석 역량뿐만 아니라 데이터베이스 서버 환경에 대해서도 알아야함
- 일반적인 데이터 흐름 : OLTP >> DW(ODS) >> DM >> OLAP
- OLTP : 실시간으로 데이터를 트랜잭션 단위로 수집, 분류, 저장하는 시스템, 데이터가 생성되고 저장되는 처음 단계
- DW(Data Warehouse) : 수집된 데이터를 사용자 관점에서 주제별로 통합하여 원하는 데이터를 빼낼 수 있도록 저장해 놓은 통합 데이터베이스, DW를 통해 OLTP를 보호하고 데이터 활용 효율을 높일 수 있음, ODS는 데이터를 DW에 저장하기 전에 임시로 데이터를 보관하는 중간 단계의 저장소, DW가 전체 히스토리 데이터를 보관하는 반면 ODS는 최신 데이터를 반영하는 것에 목적
- DM(Data Mart) : 사용자의 목적에 맞도록 가공된 일부의 데이터가 저장되는 곳, 접근성과 데이터 분석의 효율성을 높일 수 있으며 DW의 시스템 부하를 감소시킬 수 있음
- 데이터 처리 프로세스의 기본적인 개념인 ETL은 추출(Extract), 변환(Transform), 불러내기(Load)의 준말
- 데이터를 사용자가 요구하는 포맷으로 변형하여 이동시키는 작업 과정을 ETL이라고 함
9.3 분산데이터 처리¶
- 분산데이터 처리 : 여러 컴퓨터가 나눠서 일 처리한 다음 그 결과를 합치는 것
- 하나의 컴퓨터의 용량을 늘리고 더 빠른 프로세서를 탑재하는 것을 scale-up, 여러 컴퓨터를 병렬적으로 연결하는 것을 scale-out
- 분산처리 방법으로 가장 알려진 기술로는 하둡의 HDFS와 맵리듀스가 있음
- HDFS(Hadoop Distributed File System)는 슬레이브 노드, 마스터 노드 그리고 클라이언트 머신이라는 세 가지 모듈로 나뉨
- 슬레이브 노드 : 데이터를 저장하고 계산하는 세부적인 역할
- 마스터 노드 : 대량의 데이터를 HDFS에 저장하고 맵리듀스 방식을 통해 데이터를 병렬 처리
- 클라이언트 머신 : 맵리듀스 작업을 통해 산출된 결과를 사용자에게 보여주는 역할
- 맵리듀스는 맵(Map)과 리듀스(Reduce)라는 두 단계로 구성
- 맵 단계 : 흩어져 있는 데이터를 관련된 데이터끼리 묶어서 임시의 집합을 만드는 과정
- 리듀스 단계 : 필터링과 정렬을 거쳐 데이터를 뽑아냄
- 맵리듀스 단계 : 분할(입력된 데이터를 고정된 크기의 조각으로 분할) >> 매핑(분할된 데이터를 key-value 형태로 묶고 단어 개수를 계산 >> 셔플링(매핑 단계의 counting 결과를 정렬 및 병합 >> 리듀싱(각 결과를 취합 및 계산하여 최종 결과값 산출)
- HDFS는 데이터 전송, 분산 파일 시스템, 분산 데이터 처리, 운영 관리로 구분되며 스파크(Spark)는 분산 데이터 처리를 하는 하나의 시스템
- 스파크는 데이터 분석가들이 효율적으로 일할 수 있도록 특화된 환경을 가지고 있음
- 데이터 분석가는 주어진 자원을 활용하여 최적의 성능을 이끌어낼 수 있도록 전체적인 환경을 이해하고 적합한 수단을 선택할 수 있는 역량이 필요
9.4 테이블 조인과 정의서 그리고 ERD¶
- 조인은 2개 이상의 테이블을 공통의 칼럼을 중심으로 결합하는 것으로 이너 조인, 아우터 조인, 레프트 조인, 라이트 조인, 풀 조인, 크로스 조인 등이 있음
- 레프트 조인과 라이트 조인 : 하나의 테이블을 기준으로 다른 테이블에서 겹치는 부분을 결함, 따라서 기준이 되는 테이블의 데이터는 그대로 유지하면서 조인하는 테이블의 데이터만 추가
- 이너 조인과 풀 조인 : 이너 조인은 두 테이블 간에 겹치는 부분의 행만 가져오는 조인 방법, 풀 조인은 모든 행을 살리는 조인 방법
- 크로스 조인 : 값이 없더라도 모든 행이 생기도록 데이터 가공을 해야 할 떄 크로스 조인 사용
- 데이터 단어사전 : 각 칼럼과 테이블의 이름을 정할 대 체계를 약속한 일종의 사전
- 메타데이터 관리 시스템 : 데이터가 어디에 어떻게 저장되어 있는지, 그리고 데이터를 어떻게 사용할 것인지 이해할 수 있도록 데이터에 대한 정보를 관리하는 시스템
- 테이블 정의서 : 각 DW, DM 등에 적재된 테이블과 칼럼의 한글과 영문명, 데이터 속성, 그리고 간단한 설명 등이 정리된 표
- ERD : 각 테이블의 구성 정보와 테이블 간 관계를 도식으로 표현한 그림 형태로 구성(ERWin 프로그램 자주 활용)
- 데이터 분석가는 메타데이터 관리 시스템, 테이블 정의서, ERD 등을 자유롭게 확인하며 테이블 구조를 파악하고 필요한 데이터를 정확하게 찾아내고 가공 할 수 있어야한다.
In [1]:
from IPython.core.display import display, HTML
display(HTML("<style>.container {width:80% !important;}</style>"))
C:\Users\we626\AppData\Local\Temp\ipykernel_11764\529043151.py:1: DeprecationWarning: Importing display from IPython.core.display is deprecated since IPython 7.14, please import from IPython display
from IPython.core.display import display, HTML
728x90
'Book report > 데이터 분석가가 반드시 알아야 할 모든 것' 카테고리의 다른 글
01. 데이터 기초체력 기르기 (0) | 2023.06.25 |
---|