[Data Science] Data Process & EDA
개요
이번 시간에는 EDA가 무엇이고 데이터 전처리 과정이 어떻게 되는지에 대해서 알아볼 것이다.
1. 데이터 셋 불러오기
1-1. read_csv()
import pandas as pd
ktng_data_url = 'https://ds-lecture-data.s3.ap-northeast-2.amazonaws.com/kt%26g/kt%26g_0.csv'
df = pd.read_csv(ktng_data_url)
df.head()
names = [‘column명1’,’column명2’,’column명3’,’column명4’,…] 옵션 사용
해당 옵션 사용 시 데이터프레임의 컬럼 이름 지정.
column_headers = ['분기','매출액','영업이익'
,'영업이익(발표기준)','세전계속사업이익',
'당기순이익','당기순이익(지배)'
,'당기순이익(비지배)','자산총계','부채총계',
'자본총계','자본총계(지배)','자본총계(비지배)'
,'자본금','영업활동현금흐름',
'투자활동현금흐름','재무활동현금흐름',
'영업이익률','순이익률','ROE(%)',
'ROA(%)','부채비율','자본유보율','EPS(원)','PER(배)']
df = pd.read_csv(ktng_data_url,names = column_headers)
df.head()
print(df.head())와 df.head()의 차이는 무엇일까?
print(type(df.head())) #output: <class 'pandas.core.frame.DataFrame'>
type(df.head()) #output: pandas.core.frame.DataFrame
1-2. file.upload()
해당 코드를 사용하면 구글 코랩 파일 목록에 새로운 파일을 추가할 수 있다.
from google.colab import files
uploaded = files.upload()
2. EDA(Exploratory Data Analysis)
2-1. EDA란?
EDA란, 데이터 분석에 있어서 매우 중요한, 초기 분석의 단계를 의미합니다. 전처리 과정전에 데이터가 의미하는 바가 무엇이고 데이터 안에 결측치가 있는지 쓸데없는 데이터가 무엇인지 등을 파악하는 과정이라고도 볼 수 있다.
- 시각화 같은 도구를 통해서 패턴을 발견하거나
- 데이터의 특이성을 확인하거나
- 통계와 그래픽을 통해서 가설을 검정하는 과정 등을 포함합니다.
2-2. EDA의 방법(Graphic, Non-Graphic)
- 1. Graphic
- 차트 혹은 그림 등을 이용하여 데이터를 확인하는 방법이다.
- 2. Non-Graphic
- 그래픽적인 요소를 사용하지 않는 방법으로, 주로 Summary Statistics를 통해 데이터를 확인하는 방법이다.
2-3. EDA 타겟 데이터(Univariate, Multi-variate)
- 1. Univariate
- 타겟 데이터가 변수 하나
- 2. Multi-variate
- 여러 변수들간의 관계를 본다.
2-4. Uni - Non Graphic & Uni - Graphic
- 1. Uni - Non Graphic
- 각 변수마다 통계요약치를 사용해서 각 데이터를 분석한다.
Numeric data의 경우 summary statistics를 제일 많이 사용한다. 이에는
- Center (Mean, Median, Mod)
- Spread (Variance, SD, IQR, Range)
- Modality (Peak)
- Shape (Tail, Skewness, Kurtosis)
- Outliers(이상치)
등을 확인한다.
Categorical data의 경우 occurence, frequency, tabulation(도표 작성, 표)을 많이 사용한다.
- 2. Uni - Graphic
- Histogram, Pie Chart(원 그래프), Stem-leaf plot(줄기 잎 그림), Boxplot, QQPlot 등을 사용한다.
boxplot?
박스플랏은 데이터가 많아 눈으로 확인하기 어려울 때 그림을 이용해 데이터 집합의 범위와 중앙값을 빠르게 확인할 수 있는 목적으로 사용한다.
QQPlot?
qqplot은 분위수대조도로 불리며 정규모집단 가정을 하는 방법 중 하나이며 수집 데이터를 표준 정규분포의 분위수와 비교하여 그리는 그래프.
분위수 란, 데이터의 분포에서 전체 넓이를 일정 비로 나누어 위치에 있는 값을 말한다.
2-5. Multi - Non Graphic & Multi - Graphic
- 1. Multi - Non Graphic
- 여러 변수들 간의 관계를 보는 것이 주 목적이다.
- Cross - Tabulation(도표)
- Cross-Statistics(Correlation, Covariance)
Categorical data는 cross tabulation을 적용할 수 있으며 Numerical data는 Cross Statistics을 통해 데이터 분석을 할 수 있습니다.
2. Multi - Graphic 여러 변수들간의 관계를 그래프로 표현
- Category & Numeric
- boxplots
- stacked bar
- parallel coordinate
- heatmap
- Numeric & Numeric
- scatter plot
3. Data Preprocessing process
3-1. Data Cleaning
데이터를 분석하기 전에 오류를 수정하고 결측값을 제거하는 등의 작업을 하지 않으면 우리가 원하는 인사이트를 도출하는데 어려움을 겪을 수 있다.
이러한 문제를 겪지 않기 위해 데이터의 정확성, 완성도, 일관성, 신뢰성을 유지하기 위해 불필요한 데이터를 삭제하는 과정이다.
3-2. Data Integration
cleaning 작업을 끝낸 데이터들이 여러 개가 존재하고 해당 데이터들 중 몇 개의 데이터들을 분석하기 편하게 하나로 합치는 과정이라고 보면 된다. 예시로 concat이나 merge가 있다.
3-3. Data Transformation
데이터의 형태를 변환하는 작업이다. 정규화 혹은 표준화도 이것의 일종이며 Scaling이라고도 부른다. 쉽게 생각하면 정수의 데이터를 실수의 데이터로 변환하는 것도 데이터 변환의 일종이다.
3-4. Data Reduction
데이터를 의미있게 줄이는 과정이라고 보면 되는데, dimension reduction과 유사한 목적을 갖는다. 데이터 차원의 축소뿐만 아니라 데이터의 행과 열을 삭제해서 줄이는 것도 포함된다.