데이터분석

52. 데이터 EDA

장수우 2024. 2. 7. 19:44
학습주제
  • 데이터 EDA란?
  • 데이터 EDA기법 소개와 실습
  • 머신 러닝 소개
  • 모델추론 과정 소개
주요 학습 내용
  • EDA를 하는 이유
    • 효과적인 데이터 분석과 모델링을 위한 기초 마련
    • 데이터 품질 확인 : Garbage in Garbage Out
    • 데이터 특성 (패턴) 확인
      - EDA는 데이터 분석이나 모델링 전에 꼭 수행해야하는 작업
      - 데이터 품질이란 측면에서는 항상 확인이 필요하다는 점 명심한다.
    • 현업에서 깨끗한 데이터는 존재하지 않는다.
      - 항상 데이터를 믿을 수 있는지 의심할 것
      - 실제 레코드를 몇 개 살펴보는 것 만한게 없다
    • 데이터 일을 한다면 항상 데이터의 품질을 의심하고 체크하는 버릇이 필요하다.
      - 중복 레크도 체크
      - 최근 데이터 존재 여부 체크
      - Primary key uniqueness 가 지켜지는지 체크하기
      - 값이 비어있는 컬럼들이 있는지 체크하기
  • 데이터 셋 이해를 위한 일반적인 방법들
    • 기술 통계 분석
    • 결측치 탐지 및 처리
    • 이상치 탐지 및 처리
    • 데이터 시각화
    • 상관 관계 분석
    • (고급)피처 엔지니어링
  • 데이터 전처리 기법
    • 기술 통계 분석
      - 숫자 변수와 카테고리 변수 파악
      - 숫자 변수의 경우 값 범위 파악
      - 카테고리 변수의 경우에는 카테고리 수 파악
      - 카테고리의 경우 머신 러닝 모델을 만들 때 인코딩 방법을 결정
    • 결측치 탐지 및 처리
      - 비어있는 값이 있는 필드를 가진 레크도들을 찾기
      - 해당 필드들을 어떻게 할지 결정이 필요
      - 무시 or 채우는 방법 (ex - 평균값, 최소값, 최대값, 가장 흔한 값)
      - pandas는 isnull(), sum() 사용
    • 이상치 탐지 및 처리
      - 숫자 필드의 경우 아주 크거나 작은 값을 갖는 소수의 레코드가 있다면
      - 여러 가지 처리 방법이 존재
      1. 레코드들 전체적으로 다 무시
      2. 숫자 필드의 값을 전체 평균값이나 최소값이나 최대값 등으로 교체
      3. 숫자 필드의 값을 다른 값으로 전환
         - log 적용, binning을 적용
      4. 이상치에 강한 ML 모델링 방식을 사용
         - 예를 들면 Decision Tree
    • Primary key  Uniqueness 체크
      - 데이터에 Primary Key가 존재하는 경우?
      - Primary Key의 값이 유일함을 꼭 검증하는 것이 좋다.
    • 최신성 체크
      - 데이터가 최신 데이터이어야 한다면?
      - 데이터에 존재하는 타임스탬프 필드를 기준으로 최신 데이터가 있는지 꼭 확인하기
    • 레이블 (타겟)체크
      - 예측 대상이 되는 필드의 값이 어떻게 분표되어있는지 확인
      - 분류 모델인데 레이블 값 분포가 한쪽으로 치우쳤다면 평가 지표를 F1으로 사용
      - 부족한 예들을 찾아서 훈련 데이터에 추가하는 노력이 필요하다.
      - 이미지, 오디오 등에서 더 쉽고 다양한 파이썬 모듈들이 존재한다.
    • 변수간 상관 관계 검사
      - 레이블과 상관관계를 보여주는 변수들이 무엇인지 검사
      - Python Pandas 라면 corr() 함수 사용
    • 피처 엔지니어링
      - 위의 내용들이 전부 피처 엔지니어링
      - 고급 기법
      1. 필드의 수가 너무 커지면 PCA등을 통해 필드 수를 줄여본다.
      2. 앞서 언급한 이름 필드에서 성별등을 추출해 본다.
      3. 회귀분석의 경우 레이블 필드와 약한 상관관계를 갖고 있는 필드들을 곱하거나 더해서 새로운 필드를 만든다.
  • 판다스 사용 전처리
    • CSV 파일 읽기 : read_cscv('파일위치')
    • 레코드 일부 확인 : head() - 상위(개수), tail()- 하위(개수)
    • 전체적인 데이터 특징 살펴보기 : unique, describe, info
    • 데이터 필터링 : where, dropna, drop
    • 데이터 시각화 : hist, boxplot, plot

  • 머신 러닝(Machine Learning)의 정의
    •  Machine Learning
      - ‘A field of study that gives computers the ability to learn without being explicitly programmed’ 
    • 배움이 가능한 기계의 개발
      - 데이터의 패턴을 보고 흉내내는 방식
      - 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
      - 딥 러닝은 이 중의 일부
      - AI는 머신러닝을 포괄하는 개념
  • 머신 러닝 모델
    • 머신 러닝을 통해서 최종적으로 만드는 것이 머신 러닝 모델
      - 특정 방식의 예측을 해주는 블랙박스
      - 선택한 머신 러닝 알고리즘에 따라 내부가 달라진다.
      - 디버깅은 쉽지않다.
      - 입력 데이터를 주변 데이터를 기반으로 예측, Supervised ML(지도 기계학습)
  • 머신 러닝의 종류
    • 지도 기계 학습 (Supervised Machine Learning)
      - 명시적 예제(트레이닝 셋)을 통해 학습 : 정답이 존재
      - 크게 2가지 존재
      1. 분류 지도 학습 (Classification): 이진 분류(Binary)와 다중 분류 (Multi-class)
      2. 회귀 지도 학습 (Regression)
    • 비지도 기계 학습 (Unsupervised Machine Learning)
      - 클러스터링 혹은 뉴스 그룹핑처럼 주어진 데이터를 몇 개의 그룹으로 분리
      - GPT 같은 언어 모델의 훈련도 여기에 속함 (Semi-Supervised Machine Learning)
    • 강화 학습 (Reinforcement Learning)
      - 시행착오를 통해 최적의 결정을 학습하는 기계학습 방법
      - 알파고 혹은 자율주행
  • API 란?
    • Applcation Programming Interface의 약자
      - 인터페이스 : 무엇인가와 통신을 하기 위한 방법을 의미
      - 프로그램을 작성하기 위해 사용하는 인터페이스
    • 다양한 종류의 API 존재
      - 파이썬 모듈을 각기 제공해주는 기능에 따라 다양한 함수들을 제공
      - 보통 API는 웹상의 다른 서버에 존재하는 특정기능을 사용가능하게 해주는 인터페이스'
    • ML문맥에서 API는 결국 모델을 통해 예측하는 것을 의미한다.
  • 지도 기계 학습 예제 
    • 타이타닉 승객 생존 여부 예측
      - 이진 분류 분제
      - 탑승 승객별로 승객 정보와 최종 생존 여부가 트레이닝 셋으로 제공
    • 스팸 웹 페이지 분류기
      - 어떤 특징을 뽑아내면 정상인지 스팸인지 결정하는데 도움이 될까?
    • 회귀분석
      - 연속적인 숫자를 예측하는 데 사용되는 머신 러닝 모델
      - 주택 가격 예측이 Regression 모델링의 예
      - 집 평수와 판매 가격과 우편번호로 구성된 주택 정보 데이터셋 존재
      - 주택 평수와 우편번호를 바탕으로 판매 가격을 예측
  • 비지도 학습 예
    • Language Model
      - 문장의 일부를 보고 비어있는 단어를 확률적으로 맞추는 모델
      - 훈련은 위키피디아에 있는 자연스러운 문장들을 대상으로 진행한다.
  • 강화학습
    • 시행착오를 통해 최적의 결정을 학습하는 기계학습 방법
    • 에이전트(강화학습 모델)는 환경과 상호작용하며 최대 보상 전략을 학습한다.
    • 중요 개념
      - 에이전트, 환경
      - 상태와 행동
      - 보상과 처벌
  • 과적합(Overfitting)
    • 모델이 트레이닝 셋 데이터에 너무 최적화된 경우
      - 새로운 데이터에서 성능이 안나올 경우
    • 완화하는 방법
      - 데이터 셋 수집에 바이어스가 있는지 확인
      - 모델 성능 평가를 hold-out 테스트보다 cross-validation 테스트를 사용
      - 정규화를  적용
  • Hold Out
    • Overfit을 방지하기 위한 가장 간단한 방법
      - 트레이닝 셋을 트레이닝을 위한 용도와 테스트를 위한 용도로 분리
      - 보통 75% : 25%, 80% : 20%를 사용
    • 모델 빌드시 트레이닝 데이터를 사용한다.
  • Cross-Validation
    • K-Fold의 다른 이름
      - Hold-Out방식보다 우월
    • 데이터를 K개로 나눈다.
      - 5/10/20개로 보통 나눔, 각각 Fold라 지칭
    • K개의 폴드에 대해서 아래를 반복
      - 해당 폴드 제외한 나머지 데이터로 모델을 빌드
      - 해당 폴드 데이터로 검증
    • 결국 K 번의 모델 빌딩과 성능 측정이 수행된다.
      - 모든 폴드 처리후 K개의 성능 결과 평균을 모델의 전체 성능으로 간주한다.
  • 표준화(Normalization)
    • 트레이닝셋이 특정 방향으로 바이어스되지 않도록 보정해주는 것
      - 특정 필드의 값이 더 커서 그게 더 큰 영향을 끼치는 것을 방지한다.
    • 트레이닝 셋에 존재하는 feature들의 값을 특정 범위로 제약을 주어 모델의 성능이 트레이닝 셋에 따라 달라지는 것을 방지한다.
      - 보통 모든 feature들의 값을 동일한 범위에 들어가도록 하는 전처리 기법
    • Deep Learning에서는 "Batch Normalizatoin" 이라는 것이 존재
  • 비용 함수 (Cost Function, Loss Function)
    • 모델의 예측 정확도를 측정하는 목적으로 사용
    • 함수가 최소값일 때의 모델이 바로 최적의 모델
    • 모델의 예측 정확도를 측정하는 목적으로 사용되는 함수
    • 이 함수가 최소값일 때의 모델이 바로 최적의 모델
    • 비용 함수 종류
      - Absolute loss (Least Absolute Deviation, L1 norm)
      - Square loss (Least Square Error, L2 norm)
      - Hinge loss
      - Logistic loss
      - Cross entropy loss
      - RMSE (Root Mean Squared Error)
      - Logarithmic loss (RMSLE, Root Mean Squared Logarithmic Error)
  • 정규화 (Regularization)
    • Overfitting을 막기 위해 사용하는 방법 중 하나
      - 과적합은 모델이 훈련  데이터에 최적화되어 새로운 데이터 성능이 저하되는 것이다.
    • 손실 함수에 추가정보(혹은 패널티) 추가로 과적합을 방지하는 기술
      - 일부 피처의 가중치를  0으로 만들거나 아주 작게 만드는 것
    • 일반적 형태
      • 정규화 없는 ML 방식 : Linear Regression
      • L1 정규화 : 일부 덜 중요한 피처의 가중치 0
        - Lasso Regression
      • L2 정규화 : 일부 덜 중요한 피처의 가중치 아주 작게만든다.
        - Ridge Regression
  • 모델 추론 과정 모니터링이 중요하다.
    • 모델 빌딩을 하는 사람과 추론 운영을 하는 사람이 보통 다르다.
      - 여기서 다양한 문제점들이 발생하여 만들어 진 팀 = MLOps
      - LLM과 관련하여 전문화한 LLMOps등 다양한 팀이 만들어짐
    • 데이터의 패턴이 달라지면서 모델의 성능이 떨어지기 시작
      - Data Drift라고 부른다.
      - 모델의 중요 feature의 값 분포 모니터링과 모델 관련 중요 지표 모니터링이 필수

 

공부하면서 어려웠던 점

 

반응형