티스토리 뷰

 

문제 정의

 

훈련 세트와 테스트 세트로만 구분하여 모델을 평가하면, 결국 테스트 세트에만 맞추려고 하는 모델이 된다.

 

 

검증 세트

테스트 세트를 사용하지 않으면 모델이 과소, 과대적합인지 판단하기 어렵다.

 

그래서 훈련 세트에 있는 데이터를 또 나누는 방법이 있느데 이 데이터를 검증 세트라고 부른다.

 

=> 과대적합

 

교차 검증

검증 세트 문제 정의

검증 세트를 만드느라 훈련 세트가 감소하였다. 보통 많은 데이터를 훈련에 사용할수록 좋은 모델이 만들어지는데, 그렇다고 검증 세트를 조금 떼어 놓으면 검증 점수가 들쭉날쭉하고 불안정할 것이다.

해결 방안

 

이럴 때 교차 검증을 이용하면 안정적인 검증 점수를 얻으며 훈련에 더 많은 데이터를 사용할 수 있다.

 

k-겹 교차 검증

보통 5, 10 폴드 교차 검증을 많이 사용한다. 이렇게 하면 데이터의 80~90%까지 훈련에 사용할 수 있다.

검증 세트가 줄어들지만 각 폴드에서 계산한 검증 점수를 평균하기 때문에 안정된 점수로 확인 할 수 있다.

 

cross_validate( )

그렇기 때문에 교차 검증을 수행하면 입력한 모델에서 얻을 수 있는 최상의 검증 점수를 가늠할 수 있다.

주의해야 할 점은 cross_validate()는 훈련 세트를 섞어 폴드를 나누지 않기 때문에 훈련 세트를 섞을 분할기를 지정해야 한다.

 

 

 

하이퍼파라미터 튜닝

단일 하이퍼파라미터의 최적 값을 찾는 것이 아닌, 해당 모델이 갖추고 있는 모든 하이퍼파라미터의 최적 값을 찾는 것이 중요하다.

 

그리드 서치

그렇기에 하이퍼파라미터가 많아지면 문제가 복잡하다. 그렇기에 사이킷런에서 제공하는 그리드 서치를 활용한다.

과정 정리)

1. 먼저 탐색할 매개변수를 지정한다.

2. 훈련 세트에서 그리드 서치를 수행하여 최상의 평균 검증 점수가 나오는 매개변수 조합의 찾고 이것은 그리드 서치 객체가 저장한다

3. 그리드 서치는 최상의 매개변수에서 전체 훈련 세트를 사용해 최종 모델을 훈련하며 이 또한 그리드 서치 객체가 저장한다.

최적의 매개변수를 얻음.

++

매개변수의 값이 수치일 때 값의 범위나 간격을 미리 정하기 어렵다.
또 많은 매개 변수 조건이 있어 그리드 서치 수행시간이 오래 걸린다.
이럴 때 랜덤 서치!
랜덤 서치에는 매개변수 값의 목록을 전달하는 것이 아닌 매개변수를 샘플링할 수 있는 확률 분포 개체를 전달.
RandomizedSearchCV(Dt, params, n_iter=샘플링 횟수, n_jobs=코어수, random_state=number)

 

'머신러닝' 카테고리의 다른 글

9. 결정 트리  (0) 2022.04.23
8. 확률적 경사 하강법  (0) 2022.04.20
7. 로지스틱 회귀  (0) 2022.04.18
6. 특성 공학과 규제 ( 회귀 )  (0) 2022.04.17
5. 선형 회귀  (0) 2022.04.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함