얼레벌레

[5주차] 머신러닝 모델링 - 성능 본문

취업/KT AIVLE SCHOOL

[5주차] 머신러닝 모델링 - 성능

__Lucie__ 2022. 9. 12. 15:25

모델링의 목표

모든 데이터셋은 모집단의 부분집합 -> 모델링의 목표는 부분집합을 학습해서 모집단을 적절히 예측하는 것 (적절한 성능을 얻는 것)

 

성능 튜닝

  1. 선형 모델 - 변수 선택법
    • 변수 선택법 : 전진 선택법 혹은 후진 소거법
      AIC값(Akaike information criterion, 아카이케 통계량, 모델의 적합도)을 기준으로 탐색, AIC 값은 낮을수록 좋다
      AIC 값은 작을수록 좋은 모델이다
      AIC = - 모델의 적합도 + 변수의 개수 (모델의 적합도(설명력)이 높을수록, 변수의 개수는 적정 개수일수록 좋음)
      AIC값이 가장 작은 모델을 단계별, 순차적으로 탐색
      1. feature 별로 각각 단순회귀 모델을 생성하고 AIC 값 비교하여 제일 작은 변수 선정 
      2. 단계 1에서 선정된 변수에 나머지 변수를 하나씩 추가해가며 AIC 값이 가장 작은 모델의 변수를 선정 
        (여기서 단계 1보다 AIC 값이 낮아져야 함)
      3. 더이상 AIC 값이 낮아지지 않을 때까지 단계 2를 반복함.
    • hyper parameter tuning : Grid search 와 Random search

 

일반화 성능

성능을 높이기 위해서는 편차(variance)를 줄이고, 오차(bias)를 줄여야 함

variance : 모든 조건(알고리즘, 하이퍼 파라미터)이 같더라도 데이터가 달라지면 성능은 변한다.

bias : 현실세계와 모델 간에는 오차가 존재한다.

  1. Variance 대처 - 성능의 평균으로 평가하기.
    1. 여러 번 반복 실행해서 평균 성능을 만들기 : 데이터에 따라서 성능이 들쑥날쑥할 수 있으니까, 여러번 반복 실행하고 각각의 성능 결과를 가지고 평균으로 계산하기.
    2. k-fold cross validation : 모든 데이터가 한번씩은 validation용으로 사용되도록 데이터를 k등분해서 k번 수행하고 평균 성능으로 평가.
  2. Variance와 bias 동시에 대처 - 데이터 늘리기.
    • Q. 데이터가 많을수록 항상 좋은가?
      데이터가 많을수록 성능이 개선되다가 어느 지점부터 성능 향상도가 꺾임
      (많을수록 좋은 것 같지만 실상은 그렇지 않음 "오캄의 면도날") => 적당한 지점 찾기 위해 Elbow method 사용 "Learning Curve"
  3. Variance와 bias 동시에 대처 - 성능 튜닝 (하이퍼 파라미터 튜닝)
    • Grid search 와 Random search
    • 선형 모델의 경우 변수 선택 (변수 선택법으로 릿지, 라소 규제가 있음)

 

모델 복잡도와 과적합

모델의 복잡도 : 학습용 데이터에 있는 패턴을 모델에 반영한 정도

가장 단순한 모델 : 학습용 데이터에서 y값의 평균으로 예측하는 모델

가장 복잡한 모델 : 학습용 데이터에서만 존재하는 독특한 패턴까지 모두 반영한 모델

  • 선형 모델의 복잡도 : x(변수) 증가 시 복잡도 증가
  • 트리 모델의 복잡도 : depth가 높을수록, min_samples_leaf가 작을수록 복잡도 증가
  • SVM의 복잡도 : Cost, gamma가 증가할 수록 복잡도 증가 

과적합 지점 찾기 - 적합도 그래프 (Fitting Graph)

과적합 지점을 찾기 위한 방법

  1. train 성능과 validation 성능이 급격히 벌어지는 지점
  2. validation 성능의 고점
  3. 가능한 단순한 모델 (오캄의 면도날)