탐색적 데이터 분석, EDA
업데이트:
탐색적 데이터 분석, EDA(Exploratory Data Analysis)
- 오늘날 대부분의 데이터는 비정형 데이터
- 데이터 분석을 위해서는 RAW 데이터를 정형화해야함
- 혹은 정형화된 형태로 수집
데이터 분류 및 구조
정형 데이터
- 먼저, 데이터 종류를 왜 나누나요?
- R, Python 등에서는 데이터를 종류별로 구분하여 처리함
- 연속형: 범위 데이터 ex) 풍속, 지속시간
- 이산: 횟수와 같은 정수형 데이터 ex) 사건 발생 빈도, 구매 횟수
- 범주형: 가능한 범위 안 데이터만 취함 (List, 다항형 데이터) ex) 서울 내 구자치, TV스크린 종류
- 이진: Binary (0,1) ex) T or F
- 순서형: 각 데이터 간 분명한 순위가 있는 범주형 데이터 ex) 평점
- 테이블 데이터
- 데이터 프레임: 테이블 형태의 데이터 구조
- 피처: 일반적으로 테이블의 각 열 (= 특징, 속성, 입력, 예측변수, 변수)
- 결과(outcome): 데이터 과학 프로젝트 예측의 결과물 (=종속변수, 응답, 목표, 출력)
- 레코드: 테이블에서의 각 행 (= 기록값, 사건(case), 사례, 관측값, 패턴, 샘플)
- 테이블 형식이 아닌 데이터 구조
- 시계열 데이터, 위치 데이터, 그래프 등 있음
위치 추정
- 대표값 구하기
- 각 피쳐들을 살펴보는 기초적 방법, 대부분의 값이 어디에 위치하는지 중심 경향성을 나타내는 추정값
- 대표값 종류 및 용어
- 평균
- 가중평균: 가중치를 곱한 총합 / 가중치의 총합
- 중앙값
- 가중 중앙값
- 절사평균(=절단평균): 정해진 개수의 극단값을 제외한 평균값
- 로버스트하다(=저항성 있다): 극단값들에 민감하지 않다는 것을 의미
- 특잇값(=극단값)
- 평균과 중앙값
- 평균은 특잇값과 같은 데이터에 민감함
- 중앙값은 평균에 비해 비교적 로버스트한 위치 추정 방법
- 평균에서도 절사평균, 가중평균 등으로 특잇값의 영향을 줄이기 위해 활용됨.
- 결국 어떤 방법이든, 특잇값에 의한 데이터들의 대략적인 위치 왜곡을 막기 위해 고안된 것들
변이 추정
- 값이 얼마나 퍼져있는지, 밀집해있는지 등의 산포도를 나타냄
- 변이값 종류
- 편차: 관측값과 추정값과의 차이
- 분산: 평균과 편차를 제곱한 값들의 합을 n-1로 나눈 것
- 표준편차: 분산의 제곱근
- 평균절대편차: 평균과의 편차의 절댓값의 평균
- 중간값의 중위절대편차: 중간값과의 편차의 절댓값의 중간값 (..?)
- 범위: 최댓값과 최솟값의 차이
- 순서통계량(=순위): 최소에서 최대까지 정렬된 데이터 값에 따른 계량형
- 사분위범위(IQR): 75번째 백분위수와 25번쨰 백분위수 사이의 차이
- 분산, 표준편차 구할 시 n이 아니라 왜 n-1
- 불편성 혹은 불편추정량을 없애기 위해
- n으로 나누면 모집단에 해당하는 값보다 작게 나옴: 편향된(bias)값이 나올 수 있음
- 조금이라도 더 정확한 값을 찾기 위해, 값을 크게 만들기 위해 n-1로 사용
- 자유도
- 표본평균을 알 경우, n개의 데이터를 무작위로 뽑았을 때 n번째 표본은 정해져있음
- 이러한 상황을 방지하여 n개의 데이터 모두 독립적인 정보로 유지하기 위해 n-1
- 불편성 혹은 불편추정량을 없애기 위해
- 백분위수와 상자그림(boxplot)
- 백분위수: 최댓(100%), 중앙(50%), 최솟값(0%) 및 25%, 75%값 등
- 분포를 알기 쉬움
- 백분위수를 표현하기 위한 상자그림
-
특잇값(이상값)을 제외한 백분위수 표현
- 백분위수: 최댓(100%), 중앙(50%), 최솟값(0%) 및 25%, 75%값 등
- 도수분포표와 히스토그램
- 도수분포표: 변수의 범위를 동일한 크기로 나눔
- 히스토그램: 도수분포표를 시각화
- 도수 구간에 따라 시각화 모형이 달라짐
- 구간을 너무 크게 설정하면 분포의 특징 파악을 놓칠 수 있음
- 구간을 너무 작게 설정하면 큰 그림, 경향성을 볼 수 없음
- 구간 별 불연속성이 나타남 (뚝뚝 끊김!)
- 모멘트
- 1차 모멘트: 위치
- 2차 모멘트: 변이
- 3차 모멘트: 왜도
- 4차 모멘트: 첨도 (데이터가 극단값을 갖는 경향성)
- 밀도 추정
- 히스토그램의 선형버전 (sns.distplot(df, kde=True, rug=False)
- 커널밀도추정
- 막대도표 vs 히스토그램
- 막대도표는 여러 변수를 표현 - 그래서 막대 간 떨어져있지!
- 히스토그램은 하나의 변수를 구간으로 나눠서 표현
- 파이그래프
- 막대도표 대신 파이그래프를 사용할 수도 있지만 시각적으로 안좋아서 잘 안씀
- 실제량의 크기나 변화의 상황을 나타내는데 적당하지 않다.
- 변화량을 비교할 때에도 극단적인 변화가 아니면, 한 번에 알아차리기 어렵다.
- 여러 변수들을 표현하기에 적합하지 않다
범주형 데이터
- 범주?
- 전혀 다른 집단 ex. 사과, 배
- 정도를 나타내는 요인 ex. 낮음, 중간, 높음
- 구간별로 나뉜 수치 데이터 ex. 20~24세, 25~29세
- 수치형을 범주형으로 나눠서 자주 봄.(나이를 5세씩 잘라서 본다든지)
- 최빈값
- 범주형 데이터에선 잘 사용되지만, 수치형 데이터에는 잘 사용되지 않음
- 기댓값
- 주로 가중평균하여 구함
-
데이터 시각화 전, 확인해야 할 것들
상관관계
- 이변량분석(두개의 변수 관계)
- 상관계수(피어슨 상관계수)
- 0~1범위
- 0.2: 약한 상관관계 / 0.5: 강한 상관관계
- 상관행렬(행x열이 변수들로 이뤄진 일반적인 상관관계 table)
- 산점도(scatterplot)
- 상관관계를 알 수 있는 시각화
- 데이터가 비교적 적을 때에는 활용 가능
- 데이터가 너무 많으면 특성 파악이 힘들다
다변량분석
- 평균, 분산은 일변량분석 (하나의 변수에 대한 분석법)
- 상관관계는 두개의 변수에 대한 분석, 이변량분석
- 수치형변수-수치형변수
- 등고선, 육각형, 히트맵 등 사용
- 범주형-범주형(pd.crosstab)
- 분할표(피벗) 으로 사용
- 범주형-수치형
- 바이올린도표 (violinplot)
- 상자그림을 보완한 형태: 데이터의 분포를 더 자세히 볼 수 있다.
- 데이터의 특잇값들을 더 명확하게 보여줌
댓글남기기