14. 교차 검증 (Cross Validation)
반응형
사이킷런 파이프라인
사이킷런의 pipeline 클래스는 연속된 변환을 순차적으로 처리할 수 있는 기능을 제공하는 유용한 래퍼 도구이다. 전처리와 모델 등을 설정하고, 학습 데이터와 테스트 데이터를 넣어 편리하게 성능을 측정할 수 있다.
pipe_lr = make_pipeline(StandardScaler(),
PCA(n_components=2),
LogisticRegression(solver='liblinear', random_state=1))
pipe_lr.fit(x_train, y_train)
y_pred = pipe_lr.predict(x_test)
print('테스트 정확도: %.3f' % pipe_lr.score(x_test, y_test))
교차 검증
교차 검증이란, 머신러닝 모델의 성능을 검증하기 위한 방법이다.
- 홀드아웃 교차 검증
- 전체 데이터를 학습 데이터와 테스트 데이터, 검증 데이터로 나눈다.
- 학습 데이터는 모델 학습에, 테스트 데이터는 성능 추정을 위해 사용
- 검증 데이터는 선택적으로 만들어, 하이퍼파라미터 튜닝에 사용한다.
- 데이터를 분할하는 방법에 따라, 다른 결과가 나올 수 있음
- K-폴드 교차 검증
- 중복없이 훈련 데이터를 K겹으로 랜덤하게 나눈다.
- K-1겹으로 모델을 훈련하고, 나머지 하나로 성능을 평가한다.
- 즉, K번 학습을 진행하여 K개의 서로 다른 모델을 얻는다.
- K개의 모델의 성능을 기반으로 평균 성능을 계산함
- 홀드아웃 방법보다 데이터 분할에 덜 예민한 성능 평가가 가능하다.
- 추천되는 K값은 10임
- 중복없이 훈련 데이터를 K겹으로 랜덤하게 나눈다.
모델 성능 최적화
과적합 문제
모델이 학습 데이터에서 아주 높은 성능을 보이지만, 테스트 데이터를 비롯한 일반적인 데이터에서 성능이 떨어지는 현상을 과대적합 / 오버피팅이라 한다.
과대적합을 해결하기 위해선 학습 데이터를 추가 수집하거나, 모델 제약을 늘리고 학습 데이터의 잡음을 줄이는 방법을 이용한다.
반면 모델이 너무 단순하여 데이터에 내재된 구조를 학습하지 못하는 현상을 과소적합 / 언더피팅이라 한다.
과소적합을 해결하려면 더 큰 모델을 선택하거나, 모델 제약을 줄이고, 과대적합 이전까지 충분히 학습하는 방법을 이용한다.
반응형
'학부 수업 > 머신러닝' 카테고리의 다른 글
15. 앙상블 (Ensemble) (3) | 2020.12.16 |
---|---|
13. 주성분 분석 (Principal Component Analysis: PCA) (0) | 2020.12.16 |
12. 차원 축소 (Dimension Reduction) (0) | 2020.12.16 |
11. 군집화 (Clustering) (0) | 2020.12.15 |
10. 비선형 서포트 벡터 머신 (Non-linear SVM) (0) | 2020.11.25 |
댓글
이 글 공유하기
다른 글
-
15. 앙상블 (Ensemble)
15. 앙상블 (Ensemble)
2020.12.16 -
13. 주성분 분석 (Principal Component Analysis: PCA)
13. 주성분 분석 (Principal Component Analysis: PCA)
2020.12.16 -
12. 차원 축소 (Dimension Reduction)
12. 차원 축소 (Dimension Reduction)
2020.12.16 -
11. 군집화 (Clustering)
11. 군집화 (Clustering)
2020.12.15