Data Exploration Guide
Data Exploration, preparation, cleaning, 등의 데이터로 실제 모델을 만들기 전에 데이터 전처리에 종합적인 방법에 대해서 설명을 하려고 합니다. 일단 데이터를 통해 모델을 만들면, 정확도를 올리기 위해 많은 방법론 적인 내용이 있습니다. 그 데이터를 전처리 하는 과정은 아래와 같습니다.
1. Steps of Data Exploration and Preparation
2. Missing Value Treatment
3. Techniques of Outlier Detection and Treatment
4. The art of feature Engineering
Steps of Data Exploration and Preparation
좋은 input을 넣어야 높은 퀄리티의 output이 나온다. 전체 프로젝트에서, data exploration, cleaning, 그리고 preparation은 약 70%를 차지한다. 그 만큼 데이터를 전처리 하는 작업이 중요하다는 말!!!
predictive model을 생성하기 전에 아래와 같이 데이터를 cleaning, preparation을 해야한다.
- Variable Identification
- Univariate Analysis
- Bi-variate Analysis
- Missing values treatment
- Outlier treatment
- Variable transformation
- Variable creation
refined model을 얻기 전에 위 작업을 4-7 번 정도 반복해야 합니다.
1. Variable Identification
predictor(input), Target(output) 값을 확인을 해야한다. 그 다음 각 데이터의 타입과 카테고리를 확인한다.
예를 들어서 아래와 같은 데이터가 들어올때, 우리는 학생이 play cricket을 하는지 안하는지에 대한 값을 알고 싶다. 그럼 variable identification을 하면 아래와 같이 나눌 수 있다.
2. Univariate Analysis
Uni-variate는 분포가 변량이 하나인 것을 말한다. variable의 타입이 categorical, continuous한지 확인하기 위해서 사용한다.
Continuous Variables - 연속적으로 값이 들어오는 값은 central tendency와 variable의 spread정도를 이해할 필요가 있다. 예를 들면 우리가 키라는 값을 입력을 받을때, 키의 평균, 중간값, 최소/최대 값, 범위 등을 한 눈에 확인할 필요가 있다. 보통 histogram, box plot을 이용해서 확인한다. Univariate analysis는 또한 missing, outlier의 값을 확인하는데 좋다.
Categorical Variables - 카테고리 값은 각 카테고리의 분포를 확인할 필요가 있다. 각 카테고리 데이터는 count와 count%의 measure를 사용하고, bar, pie chart를 이용한다.
3 Bi-variate Analysis
Bi-variate Analysis는 두개의 변수 사이에 관계를 찾을때 사용한다. categorical, continuous의 값을 조합해서 bi-variate analysis를 진행한다. categorical & categorical, categorical & continous, continuous & continuous의 조합이 가능하고, 각각 다른 method를 통해서 분석을 한다.
- Continous & Continuous
두개의 continuous variables사이의 bi-variate analysis를 하기 위해서는 보통 scatter plot을 이용해서 확인한다. scatter plot의 패턴을 보면 두개의 변수 사이의 관계를 한눈에 쉽게 확인이 가능하다.
하지만 두개의 관계 외에 얼마나 밀접하게 관련이 있는지에 대한 척도(strength of relationship)는 확인 할 수 없다. 연관정도를 알기 위해서 correlation을 사용한다. correlation의 값은 -1과 +1의 값을 갖는다.
-1 : perfect negative linear correlation
+1 : perfect positive linear correlation
0; no correlation
Corrleation을 개산하는 식은 아래와 같다.
Correlation = Covariance(X,Y) / SQRT( Var(X)* Var(Y))
다양한 툴에서 함수를 통해 쉽게 correlation을 계산할 수 있다. (python에서 pandas의 경우에도 corr()의 함수를 통해서 확인이 가능하다.)
- Categorical & Categorical
두개의 데이터가 카테고리 데이터라면 Two-way table, Stacked Column Chart, 그리고 Chi-Square Test를 사용하면 된다.
- Two-way table
two-way table은 categorical 데이터의 count와, count%의 two-way table을 생성해 관계를 분석하는 방법이다. 하나의 category를 row에 두고, 다른 하나의 category를 column에 표시하고, row와 column 카테고리들의 combination 값을 표현하면 된다.
- Stacked Column Chart
Two-way table보다 시각적으로 표현하는 방법이다.
- Chi-Square Test
statistical significance를 유도하기 위해 사용이 된다. 또한 샘플의 기록뿐만 아니라 더 큰 모집단의 관계를 generalize하는 정도를 테스트한다. two-way table의 한개 또는 그 이상의 카테고리에서 관측된 빈번도와 기대값 사이의 차이를 기반으로 한다.
probability 0 : 두개의 카테고리 값은 dependent
probability 1 : 두개의 카테고리 값은 independent
probability의 값이 0.05보다 작으면 이 두개의 변수 사이에는 significant는 95%의 confidence를 갖는다. 계산하는 방법은 아래와 같다.
O는 observed frequency를 나타내고, E는 expected frequency를 나타낸다. E는 아래와 같이 계산한다.
- Categorical & Continuous
categorical, continuous variables 사이의 relation을 확인하기 위해선,카테고리의 각 level을 box plots으로 그려서 확인이 가능하다. 만약 levels이 숫자보다 작으면, statistical significance가 확인이 안된다. statistical significance를 확인하기 위해서 Z-test, T-test, or ANOVA를 이용하면 된다.
- Z-Test/ T-Test
두개의 그룹이 서로 statistically 얼마나 다른지에 대한 평균
- ANOVA
두 그룹의 statistically 다른 정도의 평균을 를 평가한다.
여기까지, Data Exploration의 첫번째 stage입니다. variable identification, uni-variate, bi-variate analysis. 또한 두개의 variables의 관계를 확인하기 위해 다양한 statistical, visual 방법을 보았습니다.
[참고] http://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/
'데이터분석' 카테고리의 다른 글
[데이터 분석] Data Exploration Guide - The Art of Feature Engineering(4) (3) | 2016.07.06 |
---|---|
[데이터 분석] 머신러닝 예제 - Loan Prediction (4) | 2016.07.06 |
[데이터 분석] Data Exploration Guide - Outlier(3) (0) | 2016.07.05 |
[데이터 분석] Data Exploration Guide - Missing Value Treatment(2) (0) | 2016.07.04 |
Jupyter Notebook 특징 및 설치 방법 (0) | 2016.06.17 |