5. 활동/KT AIVLE AI 3기

KT AIVLE AI 3기 ┃ 4주차(2.20 ~ 2.24) - Machine Learning

로기(dev-loggi) 2023. 2. 27. 10:41

4주차(2.20 ~ 2.24) 일정

날짜 주제 카테고리
2/20 머신러닝 머신러닝 개요
2/21 머신러닝 회귀/분류 모델, 성능 평가 방법
2/22 머신러닝 머신러닝 알고리즘
2/23 머신러닝 K 분할 교차 검증
2/24 머신러닝 앙상블, 성능 최적화

 

2/20(월) ┃ 머신러닝 개요

머신러닝 개요

  • 지도 학습 vs 비지도 학습 vs 강화 학습
  • 분류 vs 회귀 vs 클러스터링
  • 독립변수(row, x, feature), 종속변수(column, y, target)
  • 오차
  • 데이터 분리(train/valid/test)
  • Overfitting, Underfitting
  • 라이브러리 - Scikit-Learn

 

2/21(화) ┃ 머신러닝 개요

성능 평가

  • 회귀 모델 평가 지표 - MSE, RMSE, MAE, MAPE, R-Squared
  • 분류 모델 평가 지표 - Confusion Matrix(TN, FP, FN, TP), Accuracy, Precision(정밀도), Recall(재현율, 민감도), Specificity(특이도), F1-Score

 

2/22(수) ┃ 머신러닝 알고리즘

Linear Regression (선형 회귀)

  • 회귀
  • 회귀식을 통해 오차를 줄여나가는 방식으로 가중치를 구함

K-Nearest Neighbor (K 근접 이웃)

  • 회귀/분류
  • 회귀: k개 값의 평균을 계산하여 값을 예측
  • 분류: 가장 많이 포함된 유형으로 분류
  • 데이터 분포의 영향을 받으므로 Scaling 필수

Decision Tree (의사결정트리)

  • 회귀/분류
  • 불순도(Impurity) - 지니 불순도, 엔트로피
  • 정보 이득
  • 변수 중요도
  • 하이퍼파라미터
    • max_depth
    • min_samples_split
    • min_samples_leaf
    • max_feature
    • max_leaf_node

Logistic Regression (로지스틱 회귀)

  • 분류
  • 분류 문제를 회귀식으로 푼다
  • 로지스틱 함수를 통해 확률로 해석하여 분류
  • 이진 분류는 sigmoid 함수, 다중 분류는 softmax 함수

SVM(Support Vector Machine)

  • 회귀/분류
  • 서포트 벡터를 찾아서 결정 경계선을 찾는 알고리즘
  • SVM 성능을 높이기 위해 정규화 작업 필요
  • 결정 경계(Decision Boundary)
    • 서로 다른 분류값을 결정하는 경계
  • 벡터(Vector)
    • 2차원 공간 상에서 나타나는 데이터 포인트
  • 서포트 벡터(Support Vector)
    • 결정 경계선과 가장 가까운 데이터 포인트
  • 마진(Margin)
    • 서포트 벡터와 결정 경계 사이의 거리
    • 마진을 최대로 하는 결정 경계를 찾는 것이 SVM의 목표
    • 마진이 클수록 새로운 데이터에 대해 안정적으로 분류할 가능성이 높음
  • Cost
    • SVM 모델에서 오차를 어느 정도 허용할지를 결정하는 파라미터
    • Cost값이 커지면 마진이 작아져 에러를 감소시키는 결정 경계선을 만듦(Hard Margin) -> Over Fitting
    • Cost값이 작아지면 마진이 커져 에러를 증가시키는 결정 경계선을 만듦(Soft Margin) -> Under Fitting
  • Gamma
    • SVM 모델에서 결정 경계선의 유연성을 조절하는 파라미터
    • Gamma값이 클수록 작은 표준편차를 가져, 데이터 포인트가 행사하는 영향력이 줄어듦 -> Over Fitting
    • Gamma값이 작을수록 큰 표준편차를 가져, 데이터 포인트가 행사하는 영향력이 길어짐 -> Under Fitting

 

2/23(목) ┃ K-Fold Cross Validation

출처: http://ethen8181.github.io/machine-learning/model_selection/model_selection.html

  • 모든 데이터가 평가에 한 번, 학습에 k-1번 사용
  • k개의 분할(Fold)에 대한 모든 학습 평가 추정치 -> 평균, 표준편차 계산
  • Under Fitting, 데이터의 편향 방지

 

2/24(금) ┃ Ensemble & Hyperparameter Tuning

앙상블(Ensemble)

  • Voting
    • 여러 개의 모델 예측 결과에 투표를 통해 결정하는 방식
    • Hard Voting(다수결), Soft Voting(확률로 계산하여 최댓값)
  • Bagging
    • 여러 개의 같은 알고리즘에 대한 예측 결과를 Voting으로 결정
    • 데이터를 랜덤 복원 샘플링하여 병렬 학습
    • Bagging의 대표적인 알고리즘 RandomForest
  • Boosting
    • 여러 개의 같은 알고리즘을 순차적으로 학습
    • 이전 모델의 예측이 틀린 데이터에 대해 올바르게 예측할 수 있도록 다음 모델에게 가중치(Weight)를 부여하면서 학습과 예측을 진행
    • 배깅에 비해 높은 예측 성능을 자랑하지만, 속도가 느리고 과적합 발생 가능성이 있음
    • 대표적인 부스팅 모델: XGBoost, LightBGM
  • Stacking
    • 여러 모델의 예측 값을 최종 모델의 학습 데이터로 사용하여 예측하는 방법
      ex) KNN, LR, XGB 학습 및 예측 -> RandomForest 학습
    • 현실에서 많이 사용되지 않음

RandomForest

  • Bagging의 가장 대표적인 알고리즘
  • 여러 Decision Tree 모델이 전체 데이터에서 Bagging으로 각자의 데이터 샘플링
  • 모델들이 개별적으로 학습을 수행한 뒤 모든 결과를 집계하여 최종 결과를 결정
  • 주요 Hyperparameters
    • n_estimators: 트리 개수
    • max_depth: 트리의 최대 깊이
    • min_samples_split: 노드를 분할하기 위한 최소 샘플 수
    • min_samples_leaf: 리프 노드가 되기 위한 최소 샘플 수
    • max_feature: 최대 feature 수
    • n_jobs: cpu 몇 개 사용할지

XGBoost(eXtreme Gradient Bossting)

  • 회귀/분류
  • 부스팅 모델 GBM을 병렬 학습 가능하도록 만든 모델이 XGBoost
  • 높은 예측 성능, 과적합 규제(Regularization), 교차 검증, 결측치 자체 처리(use_missing 옵션)
  • 주요 Hyperparameters
    • learning_rate: 0~1사이 값
    • n_estimators: weak learner 개수, 많을수록 일정 수준까지 성능이 좋지만 학습 시간이 길어짐
    • min_child_weight: 트리에서 추가적으로 분할할 지를 결정하기 위해 필요한 데이터들의 weight 총합, 값이 클수록 분할을 자제함(기본값=1)
    • gamma: 트리에서 추가적으로 분할할 지를 결정하기 위해 필요한 최소 손실 감소 값, 이 값보다 큰 손실이 감소된 경우에 분할함, 값이 클수록 Over Fitting 위험 감소(기본값=0)
    • max_depth: 트리의 최대 깊이
    • sub_sample: weak learner가 학습에 사용하는 데이터 샘플링 비율, 과적합이 염려되는 경우 1보다 작은 값 설정(기본값=1, 전체 데이터 기반 학습)
    • colsample_bytree: 트리 생성에 필요한 Feature 샘플링 비율. Feature가 많은 경우 과적합을 조절하기 위해 사용(기본값=1, 모든 Feature 사용)
    • reg_lambda: L2 규제 적용 값. Feature가 많은 경우 이 값을 키워 과적합 방지(기본값=1)
    • reg_alpha: L1 규제 적용 값. Feature가 많은 경우 이 값을 키워 과적합 방지(기본값=0)

Hyperparameter Tuning

  • Random Search: 표본 조사
  • Grid Search: 전수 조사