[머신러닝] Model Selection

Colacan·2022년 3월 8일
1

[머신러닝]

목록 보기
1/8

교차검증

  1. 지금까지 배운 훈련/검증/테스트 세트로 나누어 진행하는 과정을 hold-out 교차검증이라고 한다.
    1) 이 방법은 훈련세트의 크기가 충분하지 않을 경우 문제가 생김
    2) 검증세트의 크기가 충분히 크지 않다면 예측성능에 대한 추정이 부정확하다.
    (이외에도 다른 문제가 있다.)

  2. 상황별로 알맞은 모델 선택을 위해 교차검증을 사용한다.

  3. 모든 데이터를 검증세트로 한번씩 사용

  4. fold마다 performance를 측정, 마지막엔 performance를 평균내어 전체 performance를 계산한다.

  5. TargetEncoder : 범주형 변수 인코더, 타겟값을 특성의 범주별로 평균내어 그 값으로 인코딩한다. (최근에 성능이 좋아 많이 사용되고 있다.)

  6. TargetEncoder의 min_samples_leaf속성 : 범주별 타겟의 평균으로 계산을 하기위한 최소한의 범주의 샘플수

  7. TargetEncoder의 의 smoothing속성 : 범주별 타겟평균을 그대로 쓰지않고 정규화
    1) 값이 클수록 평균값과 많이 달라진다.
    2) 정규화를 통해 값의 유출이 막아지기도 한다.

하이퍼파라미터 튜닝

  1. 머신러닝 모델을 만들 때 중요한 이슈
    1) 최적화 : 훈련 데이터로 더 좋은 성능을 얻기 위해 모델을 조정
    2) 일반화 : 학습된 모델이 처음 본 데이터에서 얼마나 좋은 성능을 내는지

  2. 검증곡선 : 과소적합과 과적합 사이의 최적화와 일반화가 잘 이루어진 지역을 찾기 위한 곡선

  3. 여러개의 파라미터를 이용하여 검증곡선을 그려야한다. (오늘은 예시를 위해 1개의 파라미터를 이용했다)

  4. 훈련곡선이라는 용어는 x축이 훈련데이터수인 것에 대해 그린 것이다. 검증곡선과 혼동하지 않도록 유의

  5. 사이킷런의 validation curves를 통해서 하이퍼파라미터에 대한 훈련/검증 스코어 값의 변화를 볼 수 있다.

  6. 훈련곡선과 검증곡선의 차이가 벌어지기 시작하는 지점이 최적화된 지점이다.

Randomized Search CV

  1. 여러 파라미터의 최적값을 찾기 위한 체계적 방법

  2. GridSearchCV : 검증하고 싶은 하이퍼파라미터의 수치를 정해주고 이를 모두 검정

  3. RandomizedSearchCV : 검증하려는 하이퍼파라미터들의 값 범위 지정시 무작위로 값을 지정해 조합을 모두 검증

  4. 시간이 오래걸리므로 iter값을 작게 설정한 후 차차 늘려나가자

  5. n_iter x cv 번의 학습을 진행하게 된다.

  6. clf.cvresults를 통해 하이퍼 파라미터 조합으로 만들어진 모델을 순위별로 나열할 수 있다.

  7. clf.bestestimator를 통해 가장 성능이 좋은 모델을 불러올 수 있다.

  8. refit parameter : 교차검증을 통해 알아낸 하이퍼파라미터를 통해 트레이닝한 모델을 return해주는 속성

선형회귀, 랜덤포레스트 모델의 추천 파라미터

  1. 랜덤포레스트
    1) class_weight (불균형(imbalanced) 클래스인 경우)
    2) max_depth (너무 깊어지면 과적합)
    3) n_estimators (적을경우 과소적합, 높을경우 긴 학습시간)
    4) min_samples_leaf (과적합일경우 높임)
    5) max_features (줄일 수록 다양한 트리생성)

  2. 선형회귀
    1) C (Inverse of regularization strength)
    2) class_weight (불균형 클래스인 경우)
    3) penalty

  3. 릿지,라쏘회귀
    1) alpha

최적의 하이퍼파라미터를 찾는 라이브러리 2가지

  1. Grid(격자)SearchCV : 범위 내의 모든 조합을 비교, 느리지만 정확하다
  2. RandomizedSearchCV : 범위 내에서 랜덤하게 추출, 빠르지만 확률적 탐색 (어느정도의 정확성은 보유한다)
  3. 범위를 너무 넓게잡으면 최적의 하이퍼파라미터값을 놓친다.
  4. 랜덤으로 최적의 범위를 찾고 그리드로 그 범위에서 최적을 찾는 것 (일종의 전략)
profile
For DE, DA / There is no royal road to learning

0개의 댓글