SlideShare a Scribd company logo
1 of 14
분석 프로세스
분석에 필요한 개발 프로세스 정의
이승은
Overview
• 분석 프로세스 정립
• 목적: 분석을 수행하는 사람이나 데이터 형식과 목적(모델)에 따라 달라질 수 있는 분석의
품질을 관리하고 효율적으로 수행하기 위함
• 공유 대상: 분석가
• ‘분석 프로세스’: 예측 및 이상 탐지를 목적으로 데이터를 받아 분석 결과를 적용하기까지
의 여러 단계들을 의미함. 단, 본 분석 프로세스는 프로세스 자동화를 포함하고 있지 않음
• 7-step 분석 프로세스
• 모델 수립에 따라 데이터 준비 및 전처리 단계를 다시 거쳐야 할 수 있음
• 모델 검증 단계나 모델 평가 단계의 기준에 따라 데이터 탐색, 데이터 전처리 및 변수 선택,
모델 수립 과정을 반복할 수 있음
• 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증 은 각기 다른 환경(tool)에서
수행됨
• 각 step에서 필요한 ‘산출물’ 명시 예정
문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증
• 문제 정의 요소: 요구사항 수집, 문제 범위 결정, 문제 정의 도출
• 요구사항 수집
• 기존 시스템 리뷰, 질의 및 서면 인터뷰를 통해 ‘분석 요구사항’ 도출
• 분석 요구사항: 분석 항목 및 내용, 효과 및 중요도, 예상 사용 빈도, 적용 희망 시기, 관련 데이
터 유무, 기대 수준 등 정리
• 중요도: 1 (“must have”), 2 (“nice to have”, 문제 복잡도 하), 3 (“nice to have”, 문제 복잡도 상)
• 인터뷰 시, 분석 요구사항을 체계적으로 정리할 수 있는‘요구사항 수집’ template 제공 예정
• 문제 범위 결정
• ‘분석 요구사항’의 각 항목을 우선순위로 정렬 (‘분석 요구사항’에 우선순위 항목 추가)
• ‘분석 요구사항’ 내 몇 개의 항목을 언제까지 완료할 지에 대한 계획이 담긴 ‘분석 범위 및
계획’ 도출
• 문제 정의 도출
• ‘분석 범위 및 계획’에 따라 해당 분석 항목에 맞는 ‘문제(가설) 정의’ 도출
문제 정의 - 데이터 준비 및 전처리(1) - 데이터 탐색 - 모델 수립 - 모델 검증
• 데이터 준비 및 전처리 요소: 데이터 요청, 데이터 전처리 환경, 데이터 전처리 내용
• 데이터 요청
• 정의된 문제(가설) 해결에 필요한 데이터 요청 - 추가적으로 더 연관된 데이터가 없는지,
충분한 기간의 데이터가 있는지, 신뢰할 수 있는 데이터인지 확인
• 입력(원본) 데이터: 다양한 형식을 모두 지원하나 하기와 같은 text file 선호
• text file(csv) - “,”로 구분되며 첫번째 열은 column 명을 포함함. 단, String field에 “,” 포함 유
무 확인
• 획득 후 field, record 수 확인
• 데이터 전처리 환경
• DBA(Database Architecture) 지원
• Kafka 혹은 Spark에서 데이터에 대한 전처리를 수행하되 지원하기 어려운 전처리 기능 중
일부는 R에서 지원 예정
• ‘가공 데이터’: MySQL* 를 포함한 DBMS 내 table 혹은 data frame으로 저장
*데이터 전처리 시 유용한 dplyr package는 MySQL, PostgreSQL, SQLite, BigQuery의 data table을 지원함
문제 정의 - 데이터 준비 및 전처리(1) - 데이터 탐색 - 모델 수립 - 모델 검증
• 데이터 전처리 내용
• Data Cleansing - 표준화된 형식으로 데이터를 변환
• Data 분류: numeric, integer, categorical(factor), ordinal(ordered),
string(character), binary(raw)
• Missing value 처리: 해당 record 삭제, “unknown” class 생성, 동일한 class의 평
균값 사용, 해당 value 추정(Bayesian/decision tree) 중 선택
• 날짜 및 시간 형식 통일: “2016-02-01 14:00:00”
• Inconsistency 제거: cpu usage, CPU_USAGE, Cpu Utilization과 같이 동일한 의
미의 field나 naming을 통일
• 중복 records 삭제. 단, 동일 records가 발생한 현상 자체가 중요한 경우는 삭제하
지 않음.
• Outlier 제거: numeric data의 구간화(binning), regression, clustering 등
• Data Integration - 분석에 필요한 이기종 데이터(database, 파일 등) 통합
문제 정의 - 데이터 준비 및 전처리(2) - 데이터 탐색 - 모델 수립 - 모델 검증
• 데이터 전처리 내용 (cont’d)
• Data Transformation
• Smoothing: noise 제거 - cleansing 단계에서도 수행 가능
• 데이터 탐색-plotting 단계를 통해 어떤 smoothing 기법을 쓸 지 반영
• Aggregation: 분석에 사용될 summarization 수행
• Normalization: 서로 다른 변수 scale을 맞춤(min-max, z-score 등)
• Discretization: 연속 변수를 interval attribute으로 변환(binning, histogram, clustering,
segmentation 등) - cleansing 단계에서도 수행 가능
• 새로운 attribute(feature) 생성
• Data Reduction - 동일한 결과를 낼 수 있되, 최대한 작은 데이터로 줄임
• Data Integration 시 발생하는 중복 데이터 처리: column 수가 많을 경우 correlation 분석을 통해
처리 가능
• Hierarchical aggregation: aggregated value만 필요한 경우, 해당 aggregated value로 줄임
문제 정의 - 데이터 준비 및 전처리(3) - 데이터 탐색 - 모델 수립 - 모델 검증
• 데이터 전처리 내용 (cont’d)
• 비정형 데이터의 정형화 - 로그: 로그 분석을 위한 로그 메세지 처리가 필요함
• Information retrieval하는 방법은 정의된 문제마다 상이함
• 특정 keyword 수, 로그 길이에 대한 정형화와 특정 keyword 패턴 조합, 로그 발생 간격, 특정
keyword 발생 간격에 대한 정형화는 다름.
• 본 전처리 범위에 NLP나 text mining은 속하지 않으나 하기와 같은 내용들은 information
retrieval을 위한 dictionary를 구성하는데 일부 활용될 수 있음. 단, 영문만 지원함.
• Sentence segmentation: 긴 로그 다음에 오는 새 로그를 분류
• Tokenization: 단어 단위로 쪼갬
• Stemming/lemmatization: 동일한 의미의 단어로 치환
• eating, ate, eat, eats -> eat
• change, alter, modify -> change
• Tagging & Syntactic Parsing: 단어를 패턴으로 치환
문제 정의 - 데이터 준비 및 전처리(4) - 데이터 탐색 - 모델 수립 - 모델 검증
문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색(1) - 모델 수립 - 모델 검증
• 데이터 탐색 요소: 데이터 탐색 환경, 데이터 확인, 변수 선택, 데이터 나누기, 분석용 데이터
결정
• 데이터 탐색 환경: R, Excel, SAS, SPSS 등 언어는 무관 (모델 수립, 모델 검증 환경도 동일)
• 데이터 확인
• 테이블로 보기
• 전처리 결과 확인: 변수명 및 값 유형 확인, top 100, random 선택 명령어로 raw data 값 확인
• 차트로 보기 - 하기 사항 확인
• 데이터 전처리 작업 중 부적절한 것은 없었는지: discretization이 적절한지, 예상치 못한 outlier가 있는
지, smoothing 기법이 적절했는지
• 데이터에 패턴이 있는지: 경향성 유무, cyclic 유무, fluctuation 정도 등
• 데이터간 correlation이 있는지: 추후 모델 수립 시 참고
• 변수 선택 (Feature Selection)
• 인터뷰(expert with domain knowledge)로 target과 연관이 있는 설명 변수(explanatory variable) 추
출
• 설명 변수 간 multicollinearity 확인 - linear model 수립 시 참고
문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색(2) - 모델 수립 - 모델 검증
• 데이터 나누기
• Estimation, validation, test 비율 결정
• 각 데이터 set(subset)의 역할: Estimation: 모델 생성 / Validation: 생성된 모델의 검증 / Test: 새로운
데이터에 대한 모델의 검증
• 전체 데이터가 충분하지 않은 경우, test를 하지 않음. 통상적인 비율은 estimation : validation = 75 :
25이나 다르게 선택할 수도 있음
• 전체 데이터가 충분한 경우, test를 통해 좀 더 robust한 모델을 만들 수 있음. 통상적인 비율은
estimation : validation : test = 6 : 2 : 2이나 다르게 선택할 수도 있음
• Sampling - systematic sampling은 periodic한 데이터 특성 때문에 배제할 예정
• Random sampling
• Stratified sampling
• Disproportional sampling
• Cluster sampling
• 분석용 데이터 제공: 상기의 과정을 통해 모델에 사용될 ‘분석용 데이터’ 도출. 단, 모델 수립-검증 과
정 결과에 따라 다시 본 과정, 혹은 전처리 과정으로 돌아가야 할 수 있음
문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증
• 모델 수립 요소: 모델 선택 고려사항, 모델 적용 결과
• 모델 선택 고려사항
• 선택된 변수(데이터 탐색 단계)에 따라 가능한 모델 선택. 모델 선택 후 파라미터 조정 필요
• Resource ‘A’의 1초 뒤 CPU_USAGE는 얼마일지? -> Regression, Time Series Analysis
• 데이터 패턴(데이터 탐색 단계)과 변수의 갯수, 변수의 형식에 따라 사용할 수 있는 모델이 상이함
• Regression(회귀): 종속 변수와 나머지의 독립적인 변수들 사이의 관계로 종속 변수를 예측
• TSA(시계열): 연속적이이고 unifrom한 시간 간격이 있는 이벤트들로, 이에 대한 autocorrelation 가정된
상태로 다음 이벤트를 예측
• Metric 값 예측에는 활용할 수 있으나, 시간 간격이 다르고 비연속적인 alarm 이벤트에 대해서는 적용 불가함
• CPU_USAGE와 MEMORY_USAGE는 연관성이 있는지? -> Correlation, Association(Apriori)
• Correlation(상관)은 bidirectional하지만 Association(연관) 대비 sample이 커질수록 spurious 관계가 많
아지는 단점이 있음
• Association 분석은 기존 데이터를 transaction으로 가공하는 단계 필요
• Alarm 이벤트의 transaction화: (CPU_USAGE >70, MEMORY_USAGE>70) -> (CPU_USAGE>90)
문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증
• 어떤 resource가 1초 뒤에 “error”가 포함된 message를 쓰는지? -> Classification
• Labeled된 데이터(“error”)가 필요하며 변수의 특성에 따라 사용할 수 있는 모델이 상이함
• Binary grouping 가능한 변수: Decision Tree(C4.5, CART)
• Continuous 변수나, 3개 이상의 categorical 변수는 binary로 치환하여 사용
• Numeric 변수 혹은 Mixed 변수: Regression Tree(Random Forest), KNN
• 일부 “error”에 대한 label miss가 있더라도 RF dissimilarity를 정의하여 “error” label 추정 가능
• 비슷한 특성을 가진 resource/metric 그룹을 어떻게 만들지? -> Clustering
• Labeled된 데이터를 만들 거나 grouping으로 데이터 특성을 파악할 때, 데이터 크기를 줄일 때 유용
함
• Sample 데이터로 Cluster 수 결정: Hierarchical (Agglomerative-Ward’s method)
• 단, 첫 번째 decision의 영향력이 매우 크고 데이터 자체의 신뢰도가 높아야 하며 속도가 느림
• 대용량의 데이터로 특정한 n개의 Cluster로 구분: Partitional (K-Means)
• 모델 적용 결과: 상기 모델 중 하나, 혹은 그 이상의 기법이 혼합된 ‘선택 모델’과 ‘분석용 데
이터’에 모델이 적용된 ‘결과 테이블’ 도출
문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증
• 모델 검증 요소: 모델의 정확성, 모델의 Robustness, 모델 검증 결과
• 모델의 정확성: 모델이 데이터를 얼마나 정확하게 설명하고 있는지 판단
• ROC/AUC
• AIC/BIC
• Association이나 Correlation은 별도의 검증 모델은 없음. 검증 방법으로 K-fold cross
validation 유용
• 모델의 Robustness: 새로운 데이터에 대해 해당 모델이 얼마나 유사한 결과를 낼 수
있는지 판단
• ROC/AUC
• Learning error와 Generalization error가 최소가 되는 지점으로 모델을 선택
• Classification이나 regression 수행 시 발생할 수 있는 overfitting을 방지함
• AIC/BIC - 파라미터 수를 제한하는 기능이 있어 overfitting을 방지할 수 있음
• 모델 검증 결과: 모델의 정확성과 Robustness가 평가된 ‘모델 검증 보고서’ 제공
문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증
• 모델 반영 요소: 모델의 코드화, 모니터링 및 모델 평가, 모델 반영 결과
• 모델의 코드화: 시스템에 적용하기 위한 코드화 작업 필요
• 알람 코드, 예측치 등 문제 및 환경에 적합한 형식으로 모듈화하여 적용
• 대상 시스템에 적합한 언어로 변환
• In-line: Scala, Python, Java, C++, PMML 등
• SQL
• 데이터 전처리 단계는 필요에 따라 선택적으로 반영
• 모니터링 및 모델 평가: 실제 적용 후 주기적으로 모델에 대한 정확성과
Robustness 확인
• 현 수준의 정확성/Robustness가 만족되지 않을 경우, 변수 선택을 포함한 데이터
탐색 단계로 돌아가 재수행
• 모델 반영 결과: ‘시스템 적용 코드’ 제공
Summary
단계 내용 산출물
문제 정의
요구사항을 수집하고, 수집된 요구사항을 바탕으로 우선순
위에 따라 분석 범위를 결정함. 우선순위가 높은 순으로 문
제를 정의함
분석 요구사항
분석 범위 및 계획
문제 정의
데이터 준비 및 전처리
요청하여 받은 데이터로, 1)데이터 형식 표준화, 2)데이터
통합, 3)smoothing, aggregation, 및 normalization, 4)데이
터 reduction, 5) 로그의 정형화 등의 전처리를 수행함
가공 데이터
데이터 탐색
전처리된 결과를 시각화하여 데이터에 패턴이나 연관성이
있는지, 변수 선택은 어떤 걸 할지, 데이터를 어떤 비율로
나누고 sampling할지 결정함
분석용 데이터
모델 수립
목적과 선택된 변수에 따라 모델을 결정하고 파라미터를
조정하며 모델을 수립함. 최종 모델을 선택하기 까지는 검
증 단계와 함께 반복적으로 수행되어야 함
선택 모델
결과 테이블
모델 검증
선택된 모델이 데이터를 얼마나 정확하게 설명하고 있는지
(정확성), 그리고 새로운 데이터에 대해 해당 모델이 얼마나
유사한 결과를 낼 수 있는지(robustness) 판단함
모델 검증 보고서
모델 적용
모델이 적용되는 시스템에 적합한 형식으로 코드화 작업을
수행하고 지속적으로 모델에 대한 정확성과 robustness를
확임함
시스템 적용 코드

More Related Content

What's hot

빅데이터의 이해
빅데이터의 이해빅데이터의 이해
빅데이터의 이해수보 김
 
집단지성 프로그래밍 01-데이터마이닝 개요
집단지성 프로그래밍 01-데이터마이닝 개요집단지성 프로그래밍 01-데이터마이닝 개요
집단지성 프로그래밍 01-데이터마이닝 개요Kwang Woo NAM
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루Jaimie Kwon (권재명)
 
데이터 사이언티스트 키노트 Pt 20141008
데이터 사이언티스트 키노트 Pt 20141008데이터 사이언티스트 키노트 Pt 20141008
데이터 사이언티스트 키노트 Pt 20141008Myung-Hoe Huh
 
빅데이터_ISP수업
빅데이터_ISP수업빅데이터_ISP수업
빅데이터_ISP수업jrim Choi
 
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21Donghan Kim
 
[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례kosena
 
UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015YoungMin Jeon
 
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Channy Yun
 
Process for Big Data Analysis
Process for Big Data AnalysisProcess for Big Data Analysis
Process for Big Data AnalysisMyunggoon Choi
 
Big Data 대충 알아보기
Big Data 대충 알아보기Big Data 대충 알아보기
Big Data 대충 알아보기iron han
 
빅데이터 기술 및 시장동향
빅데이터 기술 및 시장동향빅데이터 기술 및 시장동향
빅데이터 기술 및 시장동향atelier t*h
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...Chanjin Park
 
연관도 분석을 이용한 데이터마이닝
연관도 분석을 이용한 데이터마이닝연관도 분석을 이용한 데이터마이닝
연관도 분석을 이용한 데이터마이닝Keunhyun Oh
 
빅데이터의 활용
빅데이터의 활용빅데이터의 활용
빅데이터의 활용수보 김
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScienceNAVER D2
 
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장eungjin cho
 
빅데이터 시대 새로운 신기술과 활용방향
빅데이터 시대 새로운 신기술과 활용방향빅데이터 시대 새로운 신기술과 활용방향
빅데이터 시대 새로운 신기술과 활용방향Webometrics Class
 

What's hot (20)

빅데이터의 이해
빅데이터의 이해빅데이터의 이해
빅데이터의 이해
 
집단지성 프로그래밍 01-데이터마이닝 개요
집단지성 프로그래밍 01-데이터마이닝 개요집단지성 프로그래밍 01-데이터마이닝 개요
집단지성 프로그래밍 01-데이터마이닝 개요
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루
 
데이터 사이언티스트 키노트 Pt 20141008
데이터 사이언티스트 키노트 Pt 20141008데이터 사이언티스트 키노트 Pt 20141008
데이터 사이언티스트 키노트 Pt 20141008
 
빅데이터_ISP수업
빅데이터_ISP수업빅데이터_ISP수업
빅데이터_ISP수업
 
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21
 
[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례
 
UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015
 
빅데이터 개요
빅데이터 개요빅데이터 개요
빅데이터 개요
 
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
 
Process for Big Data Analysis
Process for Big Data AnalysisProcess for Big Data Analysis
Process for Big Data Analysis
 
Big Data 대충 알아보기
Big Data 대충 알아보기Big Data 대충 알아보기
Big Data 대충 알아보기
 
빅데이터 기술 및 시장동향
빅데이터 기술 및 시장동향빅데이터 기술 및 시장동향
빅데이터 기술 및 시장동향
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
 
Bigdata
BigdataBigdata
Bigdata
 
연관도 분석을 이용한 데이터마이닝
연관도 분석을 이용한 데이터마이닝연관도 분석을 이용한 데이터마이닝
연관도 분석을 이용한 데이터마이닝
 
빅데이터의 활용
빅데이터의 활용빅데이터의 활용
빅데이터의 활용
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience
 
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
 
빅데이터 시대 새로운 신기술과 활용방향
빅데이터 시대 새로운 신기술과 활용방향빅데이터 시대 새로운 신기술과 활용방향
빅데이터 시대 새로운 신기술과 활용방향
 

Similar to 데이터 분석 프로세스

DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimGruter
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용주영 송
 
Week5 data vis(2)
Week5 data vis(2)Week5 data vis(2)
Week5 data vis(2)Eun Yu
 
Bigdate & R programming
Bigdate & R programmingBigdate & R programming
Bigdate & R programmingSeongWan Son
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바NeoClova
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석simon park
 
Surrogate Modeling in pSeven
Surrogate Modeling in pSevenSurrogate Modeling in pSeven
Surrogate Modeling in pSevenShinwoo Jang
 
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질K data
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장Juhui Park
 
빅데이터플랫폼구축_개방형플랫폼중심.pdf
빅데이터플랫폼구축_개방형플랫폼중심.pdf빅데이터플랫폼구축_개방형플랫폼중심.pdf
빅데이터플랫폼구축_개방형플랫폼중심.pdf효근 윤
 
타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스
타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스
타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스정재 전
 
분석과 설계
분석과 설계분석과 설계
분석과 설계Haeil Yi
 
기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf효근 윤
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델Seong-Bok Lee
 
제자리통계 0913
제자리통계 0913제자리통계 0913
제자리통계 0913Yunhwan Kwon
 
알고리즘 마케팅 CH5
알고리즘 마케팅 CH5알고리즘 마케팅 CH5
알고리즘 마케팅 CH5kyuchul kim
 

Similar to 데이터 분석 프로세스 (20)

DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용
 
Week5 data vis(2)
Week5 data vis(2)Week5 data vis(2)
Week5 data vis(2)
 
Bigdate & R programming
Bigdate & R programmingBigdate & R programming
Bigdate & R programming
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석
 
Surrogate Modeling in pSeven
Surrogate Modeling in pSevenSurrogate Modeling in pSeven
Surrogate Modeling in pSeven
 
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 
데이터품질진단솔루션
데이터품질진단솔루션데이터품질진단솔루션
데이터품질진단솔루션
 
빅데이터플랫폼구축_개방형플랫폼중심.pdf
빅데이터플랫폼구축_개방형플랫폼중심.pdf빅데이터플랫폼구축_개방형플랫폼중심.pdf
빅데이터플랫폼구축_개방형플랫폼중심.pdf
 
타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스
타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스
타지키스탄 세관 신고 데이터 기반 위법물 탐지 서비스
 
Mahout
MahoutMahout
Mahout
 
분석과 설계
분석과 설계분석과 설계
분석과 설계
 
기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델
 
분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
제자리통계 0913
제자리통계 0913제자리통계 0913
제자리통계 0913
 
알고리즘 마케팅 CH5
알고리즘 마케팅 CH5알고리즘 마케팅 CH5
알고리즘 마케팅 CH5
 
S.M.Lee, Invited Talk on "Machine Learning-based Anomaly Detection"
S.M.Lee, Invited Talk on "Machine Learning-based Anomaly Detection"S.M.Lee, Invited Talk on "Machine Learning-based Anomaly Detection"
S.M.Lee, Invited Talk on "Machine Learning-based Anomaly Detection"
 

데이터 분석 프로세스

  • 1. 분석 프로세스 분석에 필요한 개발 프로세스 정의 이승은
  • 2. Overview • 분석 프로세스 정립 • 목적: 분석을 수행하는 사람이나 데이터 형식과 목적(모델)에 따라 달라질 수 있는 분석의 품질을 관리하고 효율적으로 수행하기 위함 • 공유 대상: 분석가 • ‘분석 프로세스’: 예측 및 이상 탐지를 목적으로 데이터를 받아 분석 결과를 적용하기까지 의 여러 단계들을 의미함. 단, 본 분석 프로세스는 프로세스 자동화를 포함하고 있지 않음 • 7-step 분석 프로세스 • 모델 수립에 따라 데이터 준비 및 전처리 단계를 다시 거쳐야 할 수 있음 • 모델 검증 단계나 모델 평가 단계의 기준에 따라 데이터 탐색, 데이터 전처리 및 변수 선택, 모델 수립 과정을 반복할 수 있음 • 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증 은 각기 다른 환경(tool)에서 수행됨 • 각 step에서 필요한 ‘산출물’ 명시 예정 문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증
  • 3. • 문제 정의 요소: 요구사항 수집, 문제 범위 결정, 문제 정의 도출 • 요구사항 수집 • 기존 시스템 리뷰, 질의 및 서면 인터뷰를 통해 ‘분석 요구사항’ 도출 • 분석 요구사항: 분석 항목 및 내용, 효과 및 중요도, 예상 사용 빈도, 적용 희망 시기, 관련 데이 터 유무, 기대 수준 등 정리 • 중요도: 1 (“must have”), 2 (“nice to have”, 문제 복잡도 하), 3 (“nice to have”, 문제 복잡도 상) • 인터뷰 시, 분석 요구사항을 체계적으로 정리할 수 있는‘요구사항 수집’ template 제공 예정 • 문제 범위 결정 • ‘분석 요구사항’의 각 항목을 우선순위로 정렬 (‘분석 요구사항’에 우선순위 항목 추가) • ‘분석 요구사항’ 내 몇 개의 항목을 언제까지 완료할 지에 대한 계획이 담긴 ‘분석 범위 및 계획’ 도출 • 문제 정의 도출 • ‘분석 범위 및 계획’에 따라 해당 분석 항목에 맞는 ‘문제(가설) 정의’ 도출 문제 정의 - 데이터 준비 및 전처리(1) - 데이터 탐색 - 모델 수립 - 모델 검증
  • 4. • 데이터 준비 및 전처리 요소: 데이터 요청, 데이터 전처리 환경, 데이터 전처리 내용 • 데이터 요청 • 정의된 문제(가설) 해결에 필요한 데이터 요청 - 추가적으로 더 연관된 데이터가 없는지, 충분한 기간의 데이터가 있는지, 신뢰할 수 있는 데이터인지 확인 • 입력(원본) 데이터: 다양한 형식을 모두 지원하나 하기와 같은 text file 선호 • text file(csv) - “,”로 구분되며 첫번째 열은 column 명을 포함함. 단, String field에 “,” 포함 유 무 확인 • 획득 후 field, record 수 확인 • 데이터 전처리 환경 • DBA(Database Architecture) 지원 • Kafka 혹은 Spark에서 데이터에 대한 전처리를 수행하되 지원하기 어려운 전처리 기능 중 일부는 R에서 지원 예정 • ‘가공 데이터’: MySQL* 를 포함한 DBMS 내 table 혹은 data frame으로 저장 *데이터 전처리 시 유용한 dplyr package는 MySQL, PostgreSQL, SQLite, BigQuery의 data table을 지원함 문제 정의 - 데이터 준비 및 전처리(1) - 데이터 탐색 - 모델 수립 - 모델 검증
  • 5. • 데이터 전처리 내용 • Data Cleansing - 표준화된 형식으로 데이터를 변환 • Data 분류: numeric, integer, categorical(factor), ordinal(ordered), string(character), binary(raw) • Missing value 처리: 해당 record 삭제, “unknown” class 생성, 동일한 class의 평 균값 사용, 해당 value 추정(Bayesian/decision tree) 중 선택 • 날짜 및 시간 형식 통일: “2016-02-01 14:00:00” • Inconsistency 제거: cpu usage, CPU_USAGE, Cpu Utilization과 같이 동일한 의 미의 field나 naming을 통일 • 중복 records 삭제. 단, 동일 records가 발생한 현상 자체가 중요한 경우는 삭제하 지 않음. • Outlier 제거: numeric data의 구간화(binning), regression, clustering 등 • Data Integration - 분석에 필요한 이기종 데이터(database, 파일 등) 통합 문제 정의 - 데이터 준비 및 전처리(2) - 데이터 탐색 - 모델 수립 - 모델 검증
  • 6. • 데이터 전처리 내용 (cont’d) • Data Transformation • Smoothing: noise 제거 - cleansing 단계에서도 수행 가능 • 데이터 탐색-plotting 단계를 통해 어떤 smoothing 기법을 쓸 지 반영 • Aggregation: 분석에 사용될 summarization 수행 • Normalization: 서로 다른 변수 scale을 맞춤(min-max, z-score 등) • Discretization: 연속 변수를 interval attribute으로 변환(binning, histogram, clustering, segmentation 등) - cleansing 단계에서도 수행 가능 • 새로운 attribute(feature) 생성 • Data Reduction - 동일한 결과를 낼 수 있되, 최대한 작은 데이터로 줄임 • Data Integration 시 발생하는 중복 데이터 처리: column 수가 많을 경우 correlation 분석을 통해 처리 가능 • Hierarchical aggregation: aggregated value만 필요한 경우, 해당 aggregated value로 줄임 문제 정의 - 데이터 준비 및 전처리(3) - 데이터 탐색 - 모델 수립 - 모델 검증
  • 7. • 데이터 전처리 내용 (cont’d) • 비정형 데이터의 정형화 - 로그: 로그 분석을 위한 로그 메세지 처리가 필요함 • Information retrieval하는 방법은 정의된 문제마다 상이함 • 특정 keyword 수, 로그 길이에 대한 정형화와 특정 keyword 패턴 조합, 로그 발생 간격, 특정 keyword 발생 간격에 대한 정형화는 다름. • 본 전처리 범위에 NLP나 text mining은 속하지 않으나 하기와 같은 내용들은 information retrieval을 위한 dictionary를 구성하는데 일부 활용될 수 있음. 단, 영문만 지원함. • Sentence segmentation: 긴 로그 다음에 오는 새 로그를 분류 • Tokenization: 단어 단위로 쪼갬 • Stemming/lemmatization: 동일한 의미의 단어로 치환 • eating, ate, eat, eats -> eat • change, alter, modify -> change • Tagging & Syntactic Parsing: 단어를 패턴으로 치환 문제 정의 - 데이터 준비 및 전처리(4) - 데이터 탐색 - 모델 수립 - 모델 검증
  • 8. 문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색(1) - 모델 수립 - 모델 검증 • 데이터 탐색 요소: 데이터 탐색 환경, 데이터 확인, 변수 선택, 데이터 나누기, 분석용 데이터 결정 • 데이터 탐색 환경: R, Excel, SAS, SPSS 등 언어는 무관 (모델 수립, 모델 검증 환경도 동일) • 데이터 확인 • 테이블로 보기 • 전처리 결과 확인: 변수명 및 값 유형 확인, top 100, random 선택 명령어로 raw data 값 확인 • 차트로 보기 - 하기 사항 확인 • 데이터 전처리 작업 중 부적절한 것은 없었는지: discretization이 적절한지, 예상치 못한 outlier가 있는 지, smoothing 기법이 적절했는지 • 데이터에 패턴이 있는지: 경향성 유무, cyclic 유무, fluctuation 정도 등 • 데이터간 correlation이 있는지: 추후 모델 수립 시 참고 • 변수 선택 (Feature Selection) • 인터뷰(expert with domain knowledge)로 target과 연관이 있는 설명 변수(explanatory variable) 추 출 • 설명 변수 간 multicollinearity 확인 - linear model 수립 시 참고
  • 9. 문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색(2) - 모델 수립 - 모델 검증 • 데이터 나누기 • Estimation, validation, test 비율 결정 • 각 데이터 set(subset)의 역할: Estimation: 모델 생성 / Validation: 생성된 모델의 검증 / Test: 새로운 데이터에 대한 모델의 검증 • 전체 데이터가 충분하지 않은 경우, test를 하지 않음. 통상적인 비율은 estimation : validation = 75 : 25이나 다르게 선택할 수도 있음 • 전체 데이터가 충분한 경우, test를 통해 좀 더 robust한 모델을 만들 수 있음. 통상적인 비율은 estimation : validation : test = 6 : 2 : 2이나 다르게 선택할 수도 있음 • Sampling - systematic sampling은 periodic한 데이터 특성 때문에 배제할 예정 • Random sampling • Stratified sampling • Disproportional sampling • Cluster sampling • 분석용 데이터 제공: 상기의 과정을 통해 모델에 사용될 ‘분석용 데이터’ 도출. 단, 모델 수립-검증 과 정 결과에 따라 다시 본 과정, 혹은 전처리 과정으로 돌아가야 할 수 있음
  • 10. 문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증 • 모델 수립 요소: 모델 선택 고려사항, 모델 적용 결과 • 모델 선택 고려사항 • 선택된 변수(데이터 탐색 단계)에 따라 가능한 모델 선택. 모델 선택 후 파라미터 조정 필요 • Resource ‘A’의 1초 뒤 CPU_USAGE는 얼마일지? -> Regression, Time Series Analysis • 데이터 패턴(데이터 탐색 단계)과 변수의 갯수, 변수의 형식에 따라 사용할 수 있는 모델이 상이함 • Regression(회귀): 종속 변수와 나머지의 독립적인 변수들 사이의 관계로 종속 변수를 예측 • TSA(시계열): 연속적이이고 unifrom한 시간 간격이 있는 이벤트들로, 이에 대한 autocorrelation 가정된 상태로 다음 이벤트를 예측 • Metric 값 예측에는 활용할 수 있으나, 시간 간격이 다르고 비연속적인 alarm 이벤트에 대해서는 적용 불가함 • CPU_USAGE와 MEMORY_USAGE는 연관성이 있는지? -> Correlation, Association(Apriori) • Correlation(상관)은 bidirectional하지만 Association(연관) 대비 sample이 커질수록 spurious 관계가 많 아지는 단점이 있음 • Association 분석은 기존 데이터를 transaction으로 가공하는 단계 필요 • Alarm 이벤트의 transaction화: (CPU_USAGE >70, MEMORY_USAGE>70) -> (CPU_USAGE>90)
  • 11. 문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증 • 어떤 resource가 1초 뒤에 “error”가 포함된 message를 쓰는지? -> Classification • Labeled된 데이터(“error”)가 필요하며 변수의 특성에 따라 사용할 수 있는 모델이 상이함 • Binary grouping 가능한 변수: Decision Tree(C4.5, CART) • Continuous 변수나, 3개 이상의 categorical 변수는 binary로 치환하여 사용 • Numeric 변수 혹은 Mixed 변수: Regression Tree(Random Forest), KNN • 일부 “error”에 대한 label miss가 있더라도 RF dissimilarity를 정의하여 “error” label 추정 가능 • 비슷한 특성을 가진 resource/metric 그룹을 어떻게 만들지? -> Clustering • Labeled된 데이터를 만들 거나 grouping으로 데이터 특성을 파악할 때, 데이터 크기를 줄일 때 유용 함 • Sample 데이터로 Cluster 수 결정: Hierarchical (Agglomerative-Ward’s method) • 단, 첫 번째 decision의 영향력이 매우 크고 데이터 자체의 신뢰도가 높아야 하며 속도가 느림 • 대용량의 데이터로 특정한 n개의 Cluster로 구분: Partitional (K-Means) • 모델 적용 결과: 상기 모델 중 하나, 혹은 그 이상의 기법이 혼합된 ‘선택 모델’과 ‘분석용 데 이터’에 모델이 적용된 ‘결과 테이블’ 도출
  • 12. 문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증 • 모델 검증 요소: 모델의 정확성, 모델의 Robustness, 모델 검증 결과 • 모델의 정확성: 모델이 데이터를 얼마나 정확하게 설명하고 있는지 판단 • ROC/AUC • AIC/BIC • Association이나 Correlation은 별도의 검증 모델은 없음. 검증 방법으로 K-fold cross validation 유용 • 모델의 Robustness: 새로운 데이터에 대해 해당 모델이 얼마나 유사한 결과를 낼 수 있는지 판단 • ROC/AUC • Learning error와 Generalization error가 최소가 되는 지점으로 모델을 선택 • Classification이나 regression 수행 시 발생할 수 있는 overfitting을 방지함 • AIC/BIC - 파라미터 수를 제한하는 기능이 있어 overfitting을 방지할 수 있음 • 모델 검증 결과: 모델의 정확성과 Robustness가 평가된 ‘모델 검증 보고서’ 제공
  • 13. 문제 정의 - 데이터 준비 및 전처리 - 데이터 탐색 - 모델 수립 - 모델 검증 • 모델 반영 요소: 모델의 코드화, 모니터링 및 모델 평가, 모델 반영 결과 • 모델의 코드화: 시스템에 적용하기 위한 코드화 작업 필요 • 알람 코드, 예측치 등 문제 및 환경에 적합한 형식으로 모듈화하여 적용 • 대상 시스템에 적합한 언어로 변환 • In-line: Scala, Python, Java, C++, PMML 등 • SQL • 데이터 전처리 단계는 필요에 따라 선택적으로 반영 • 모니터링 및 모델 평가: 실제 적용 후 주기적으로 모델에 대한 정확성과 Robustness 확인 • 현 수준의 정확성/Robustness가 만족되지 않을 경우, 변수 선택을 포함한 데이터 탐색 단계로 돌아가 재수행 • 모델 반영 결과: ‘시스템 적용 코드’ 제공
  • 14. Summary 단계 내용 산출물 문제 정의 요구사항을 수집하고, 수집된 요구사항을 바탕으로 우선순 위에 따라 분석 범위를 결정함. 우선순위가 높은 순으로 문 제를 정의함 분석 요구사항 분석 범위 및 계획 문제 정의 데이터 준비 및 전처리 요청하여 받은 데이터로, 1)데이터 형식 표준화, 2)데이터 통합, 3)smoothing, aggregation, 및 normalization, 4)데이 터 reduction, 5) 로그의 정형화 등의 전처리를 수행함 가공 데이터 데이터 탐색 전처리된 결과를 시각화하여 데이터에 패턴이나 연관성이 있는지, 변수 선택은 어떤 걸 할지, 데이터를 어떤 비율로 나누고 sampling할지 결정함 분석용 데이터 모델 수립 목적과 선택된 변수에 따라 모델을 결정하고 파라미터를 조정하며 모델을 수립함. 최종 모델을 선택하기 까지는 검 증 단계와 함께 반복적으로 수행되어야 함 선택 모델 결과 테이블 모델 검증 선택된 모델이 데이터를 얼마나 정확하게 설명하고 있는지 (정확성), 그리고 새로운 데이터에 대해 해당 모델이 얼마나 유사한 결과를 낼 수 있는지(robustness) 판단함 모델 검증 보고서 모델 적용 모델이 적용되는 시스템에 적합한 형식으로 코드화 작업을 수행하고 지속적으로 모델에 대한 정확성과 robustness를 확임함 시스템 적용 코드