[Week 11] Day 2 - TIL

Topics

  • Data EDA
  • Machine Learning
  • Model 추론 과정

Data EDA

  • 데이터 분석이나 모델링 전에 반드시 수행해야 하는 작업
  • 데이터 특성을 확인
  • 항상 깨끗한 데이터는 존재하지 않으므로 데이터 품질 측면에서는 항상 확인하여야 함
  • 데이터를 의심하는 습관 들이기 (실제 Record check 하는 것이 가장 좋음)
데이터를 의심하는 습관
1. 중복 Record check (duplicates)
2. 최근 데이터 여부 파악
3. Primary key Uniqueness
4. 결측치 check

 

데이터 전처리 기법

1.  기술 통계 분석

  • 숫자와 category 변수 파악
  • 숫자는 숫자 범위, category 변수는 category 개수, 그리고 ML model encoding 방법을 결정

2. 결측치 탐지 및 처리

  • 레코드를 무시하는 것은 좋은 선택이 아니어서 보통 채우는 방식을 선택함
  • 숫자 변수는 평균 값이나 가장 흔한 값을 채우는 것이 일반적임
  • category 변수는 가장 흔한 category 변수를 채우는 것이 일반적임
  • Pandas 의 경우 isnull().sum() function 을 사용하여 탐지

3. 이상치 탐지 및 처리

숫자 field 의 경우 3가지 방식으로 진행됨

 

❶ 최대, 최소, 평균 값 대체

❷ 다른 값으로 전환

log : prevent overfitting ...

binning : 정의된 기준에 따라 데이터값을 특정한 bin 또는 group 으로 묶는 과정

❸ ML modeling 방식 적용 - ex) Decision Tree

 

4. Primary key Uniqueness

5. 데이터 최신성 check

  • 데이터가 최신 데이터이어야 하는 경우, Timestamp 기준으로 확인

6. Label (target) check

  • field value 분포 확인
  • 모델이 예측해야하는 FIeld 를 Label (target) 이라고 함
  • Classification model 분포 Label 분포가 한 쪽으로 치우친 경우, F1 score 평가 지표 사용
F1 score
분류 모델의 Precison 과 Recall 성능을 동시에 고려하기 위해 사용
Precision 과 Recall 의 조화평균으로 정의
0 ~ 1 사이의 값으로 1에 가까울수록 분류 성능이 좋다고 판단할 수 있음
Precision 과 Recall 에 대한 설명은 후에 작성

출처 : https://www.google.co.kr/url?sa=i&url=https%3A%2F%2Fwww.v7labs.com%2Fblog%2Ff1-score-guide&psig=AOvVaw0IBQFMGcv__CGj1jndWVD1&ust=1707828806893000&source=images&cd=vfe&opi=89978449&ved=0CAUQjB1qFwoTCLiIk53spYQDFQAAAAAdAAAAABAI

 

 

7. 변수 간 상관관계 검사

  • Python Pandas 에서는 corr() function 을 사용하여 확인 가능

8. Feature Engineering

❶ PCA (Principle Comment Analysis) 

  • dimensionality reduction 에 쓰이는 기법
  • 고차원에 데이터를 낮은 차원에 데이터로 바꿔줄 수 있다는 것
  • field 의 수가 너무 커진 경우 수를 줄일 때 사용

❷ Regression

  • Regression 의 경우 label field 와 약한 상관관계를 가지는 field 와 결합하여 새로운 field 를 생성 (일반적인 Feature engineering)

9. Pandas 사용 전처리

  • csv file reading : read_csv 사용하여 URL 인자 사용 가능
  • Record 일부 확인 : head(), tail()
  • 전체적인 데이터 특징 확인 : describe(), info(), unique()
  • Data filtering : where, dropna, drop
  • Data visualization : hist, boxplot, plot

Machine Learning

  • 배움이 가능한 기계를 개발하는 것
  • 데이터의 패턴을 보고 imitation
  • 학습할 수 있도록 Algorithm과 기술 개발

Machine Learning Model

  • 특정 방식을 예측하는 blackbox
  • debugging 어려움
  • 어떠한 Algorithm 을 선택하느냐에 따라 달라짐

1️⃣ Supervised Machine Learning

  • 정답이 존재

❶ Classification (분류) 

- Binary : 타이타닉 승객 생존 여부 예측

- Multi-class

❷ Regression (회귀)

- 연속적인 숫자를 예측하는데 사용

 

2️⃣ UnSupervised Machine Learning

  • 정답이 존재하지 않음
  • ex) Language Model

3️⃣ Reinforcement Learning

  • 시행착오를 통해 최적의 결정을 학습
  • ex) 알파고, 자율주행

출처 : https://tcpschool.com/deep2018/deep2018_machine_reinforcement

❶ Agent가 주어진 environment 의 현재 state를 observation 하여, 이를 기반으로 action

❷ environment 상태를 변화하면서 Agent가 Rewards 를 받게 됨

❸ Rewards 기반으로 정의된 Agent는 더 많은 Rewards를 얻을 수 있는 방향(best action) 으로 학습 

  

 

API (Application Programming Interface)

  • 프로그램을 작성하기위해 사용하는 Interface
  • Python Module 이 API 라고 부를 수 있음
  • Web 상에 다른 서버에 존재하는 특정 기능을 사용가능하게 해주는 Interface 
  • ML 에서는 모델을 통해 예측하는 것을 API 라고 부름

Overfitting (과적합)

  • model 이 training dataset 에 너무 최적화된 경우, 즉 제대로된 성능이 나오지 않는 경우를 의미함
  • 완화 방법

❶ bias check

❷ 모델 성능 평가를 hold-out test 보다 cross-validation test 사용

❸ Normalization

 

hold-out

  • overfit 방지 기법 중 하나
  • training datset 을 traning 에 사용할 데이터와 test 에 사용할 데이터로 나눔 (보통 75 : 25 or 80 : 20)
  • model buliding 을 traning data, 성능 측정을 test data 로 사용함

Cross-validation

  • overfit 방지 기법 중 하나
  • 데이터를 나누어서 (fold) model buliding 하고 성능을 측정

Normalization 

  • training dataset 이 특정한 방향으로 편향되지 않도록 보정
  • 값을 특정 범위로 제약을 주어서 방지함 (-1 ~ 1 or 0 ~ 1)

Cost function

  • 모델의 예측 정확도를 측정하는 목적으로 사용되는 함수
  • ML 의 목적이 Cost function 을 최소로 만들기 위함임

Regularization

  • overfitting 을 막기 위한 방법 중 하나
  • Loss function 에 추가 정보를 추가하여 overfitting 을 방지함

❶ Linear regression : 정규화를 사용하지 않는 ML 방식

❷ L1 regularization : 덜 중요한 feature weight 을 0으로 만듦 -> Lasso Regression

❸ L2 regularization : 아주 작게 만듦 -> Ridge Regression

 

Model 추론 과정

1️⃣ 예측 데이터를 실제 훈련에 사용되는 데이터로 전환

- Featrue engineering 사용, overfitting 을 방지하는 것 

2️⃣ Model buliding 하는 사람과 추론 운영을 하는 사람은 보통 다름

- MLOps team

- Data drift (데이터의 패턴이 달라지면서 모델의 성능을 저하) 때문에, 모델 추론 과정을 모니터링하는 것이 중요

'Bootcamp' 카테고리의 다른 글

[Week 14] Day 2 - TIL  (1) 2024.02.28
[Week 14] Day 1 - TIL  (0) 2024.02.23
[Week 11] Day 1 - TIL  (0) 2024.02.05
[Week 10] Day 1 - TIL  (1) 2024.02.05
[Week 8] Day 4 - TIL  (2) 2024.01.12