EDA

넘어산·2024년 2월 6일
0

TIL

목록 보기
37/37

EDA 하는 이유

  • 현업에서 깨끗한 데이터란 존재하지 않음
  • 데이터 품질 체크
    • 중복 레코드 체크
    • 최근 데이터 존재 여부 체크
    • Primary key uniqueness 체크
    • 값이 비어있는 컬럼이 있는지 체크

일반적인 방법

  • 기술 통계 분석
  • 결측치 탐지 및 처리
  • 이상치 탐지 및 처리
  • 데이터 시각화
  • 상관 관계 분석
  • (고급) 피처 엔지니어링

EDA 기법 소개

기술 통계 분석

  • 숫자 변수와 카테고리 변수 파악
  • 숫자 변수의 경우 값 범위 파악
  • 카테고리 변수의 경우 카테고리 수 파악
  • 카테고리 경우 머신 러닝 모델 만들때 인코딩(일반적으로 원-핫-인코딩) 방법 결정

결측치 탐지 및 처리

  • 비어있는 값이 있는 필드를 가진 레코드들 찾기
  • 해당 필드들을 어떻게 할지 결정 필요
    • 무시하기
    • 채우기
      • 1) 숫자 필드: 평균값, 최소값, 최대값, 가장 흔한 값등
      • 2) 카테고리 필드: 가장 흔한 카테고리 값 기본값으로 사용
  • Pandas의 isnull().sum()

이상치 탐지 및 처리

  • 숫자 필드의 경우 아주 크거나 작은 값을 갖는 소수의 레코드
  • 여러 가지 방법 존재
    • 무시하기
    • 평균값, 최소값, 최대값, 가장 흔한 값등
    • 숫자 필드 값을 다른 값으로 전환 ex) log, binning
    • 이상치에 강한 ML 모델링 방식 사용 ex) Decision Tree

Primary key Uniqueness 체크

  • Primary key의 값이 유일함 검증

최신성 체크

  • 데이터에 존재하는 타임스탬프 필드를 기준으로 최신 데이터가 있는지 확인

레이블(타겟) 체크

  • 예측 대상이 되는 필드의 값이 어떻게 분포되었는지
  • 분류 모델이 레이블 값 분포가 한쪽으로 치우쳤다면 평가 지표를 F1으로 사용
    • 부족한 예들을 찾아 훈련 데이터에 추가

변수 간 상관관계

  • 특히 레이블과 상관관계를 보여주는 변수들이 무엇인지
  • Pandas의 corr()

피처 엔지니어링

  • 피처 엔지니어링(머신러닝 훈련에 이용)
  • 필드 수가 커지면 pca를 통해 필드 수 줄이기
  • 앞선 언급한 이름 필드에서 성별 등을 추출해보기
  • Regression의 경우 레이블 필드와 약한 상관관계를 갖고 있는 필드들을 곱하거나 더해서 새로운 필드를 만들기

판다스 사용 전처리

  • csv 파일 읽기: read_csv
  • 레코드 일부 확인 하기: head, tail
  • 데이터 특징 살펴보기: unique, describe, info
  • 데이터 필터링: where, dropna, drop
  • 데이터 시각화: hist, boxplot, plot

0개의 댓글