데이터셋 불러오기
데이터셋 정보 파악
- 데이터셋을 불러오기 전 데이터셋의 정보를 먼저 파악한다.
- 행과 열의 수
- 열에 헤더가 있는지
- 결측 데이터가 있는지
- 원본 형태 확인
불러오기 전 정보 파악을 하는 이유
- 예상하는 형태가 아닌 데이터일 수 있어서 불러오기조차 안되는 경우도 있을 수 있다.
- CSV(Comma-Separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다.
- 확장자는 .csv이며 MIME 형식은 text/csv이다.
좋은 데이터셋
- 위 이미지는 캐글의 데이터셋 설명 표이다.
EDA(Exploratory Data Analysis, 탐색적 데이터 분석)
- 로우한 데이터를 바로 분석에 사용하기에는 어려움이 있다.
- 수집한 데이터가 들어왔을 때, 이를 다양한 각도에서 관찰하고 이해하는 과정이다.
- 데이터를 분석하기 전 복잡한 모델링이나 수식을 쓰지 않고 그래프나 통계적인 방법으로 자료를 직관적으로 탐색하는 것이 주목적이다.
견적을 내는 분석
- 사각화 같은 도구를 통해 패턴을 발견한다.
- 데이터의 특이성을 확인한다.
- 통계와 그래픽을 통해 가설을 검정하는 과정을 포함한다.
탐색적 데이터 분석(EDA)
- 쌓여있는 데이터를 기반으로 가설을 세워 데이터를 분석하는 방법이다.
- 데이터의 구조와 특징을 파악하며 여기서 얻은 정보를 바탕으로 통계모형을 만든다.
- 빅데이터 분석에 사용된다.
확증적 데이터 분석(CDA, Confirmatory Data Analysis)
- 목적을 가지고 데이터를 확보하여 분석하는 방법이다.
- 관측된 형태나 효과의 재현성 평가, 유의성 검정, 신뢰구간 추정 등 통계적 추론을 하는 단계이다.
- 가설검정, 보통은 설문조사, 논문에 대한 내용을 입증하는데 많이 사용된다.
방법
- Graphic: 차트 혹은 그림을 이용 데이터를 확인한다.
- Non-Graphic: Summary Statistics를 통해 확인한다.
- 데이터 또한 Univariate, Multi-vairate로 나눠진다.
Uni - Non Graphic
- 샘플 데이터의 분산을 확인하는 것이 주목적이다.
- 숫자형 데이터의 경우
summary statistics
를 제일 많이 활용한다. 이에는,- Center (Mean, Median, Mod)
- Spread (Variance, SD, IQR, Range)
- Modality (Peak)
- Shape (Tail, Skewness, Kurtosis)
- Outliers
- 범주형 데이터의 경우,
- occurence
- frequency
- tabulation
Uni - Graphic
- Histogram, Pie chart, Stem-leaf plot, Boxplot, QQplot 등을 사용한다.
- 만약 값들이 너무 다양하다면 Binning, Tabulation등을 활용한다.
QQPlot
- ‘데이터의 분포와 이론상 분포가 잘 일치하는가?’를 확인할 수 있는 방법이다.
- ex) 성적 분포가 고를 것이다.
Multi - Non Graphic
- Relationship을 보는 것이 주된 목표이다.
- Cross-Tabulation과 Cross-Statistics(Correlation, Covariance) 등을 사용한다.
- 위와 같이 Cross-Tabulation을 적용할 수 있다.
- 숫자형 피쳐들에 경우 위와 같이 Cross-Statistics를 통해 EDA를 진행할 수 있다.
Multi - Graphic
- Category & Numeric 데이터에 대해서 Boxplots, Stacked bar, Parallel Coordinate, Heatmap을 사용한다.
- Numeric & Numeric 데이터에 대해서 Scatter Plot을 사용한다.
Pandas 사용 기초 EDA
자주 쓰이는 내장 함수
Missing Data
- isna
- isnull
- notna
- notnull
- dropna
- fillna
Data Frame
- index
- columns
- dtypes
- info
- select_dtypes
- loc
- iloc
- insert
- head
- tail
- apply
- aggregate
- drop
- rename
- replace
- nsmallest
- nlargest
- sort_values
- sort_index
- value_counts
- describe
- shape
시각화
- plot
- plot.area
- plot.bar
- plot.barh
- plot.box
- plot.density
- plot.hexbin
- plot.hist
- plot.kde
- plot.line
- plot.pie
- plot.scatter
데이터 프리프로세싱
- 좋은 모델을 위해서는 GIGU(Garbage In Garbage Out)가 필수적이다.
Cleaning
- 노이즈를 제거하거나, inconsistency를 보정하는 과정이다.
- 값이 빠져있거나, 잘못 입력되어 있거나, 일관성을 가지지 않는 데이터를 제거/보정하는 과정이 포함되어 있다.
- 데이터를 분석하기 전 오류를 깨끗이 다듬지 않으면 잘못된 인사이트를 얻을 수 있다.
Missing Values
- Ignore the tuple (결측치가 있는 데이터 삭제)
- Manual Fill (수동으로 입력)
- Global Constant (“Unknown”)
- Imputation (All mean, Class mean, Inference mean, Regression 등)
Noisy data
- 큰 방향성에서 벗어난 random error 혹은 variance를 포함하는 데이터를 말하며, 대부분 descriptive statistics 혹은 visualization(eda) 등을 통해 제거가 가능하다.
Etc
- Binning
- Regression
- Outlier analysis
Integration
- 여러개로 나누어져 있는 데이터들을 분석하기 편하게 하나로 합치는 과정이다.
Transformation
- 데이터의 형태를 변환하는 작업으로, scaling이라고 부른다.
Reduction
- 데이터를 의미있게 줄이는 것을 의미하며, dimension reduction과 유사한 목적을 가진다.