하이퍼파라미터 튜닝
여러 설정을 비교하여 검증 성능이 좋은 조합을 찾는 과정입니다.
고객의 서비스 해지 여부를 예측하기 위해 랜덤 포레스트 모델을 만들었다고 가정해 보겠습니다. 나무를 100개 사용했을 때 정확도는 87%였지만, 나무 수를 300개로 늘리고 최대 깊이를 조정하자 정확도가 89%로 높아졌습니다.
그렇다면 나무를 1,000개로 늘리면 성능이 더 좋아질까요? 최대 깊이를 높이거나 다른 설정을 변경하면 어떤 결과가 나타날까요?
머신러닝에서는 같은 알고리즘을 사용하더라도 학습 설정에 따라 예측 성능이 달라질 수 있습니다. 하지만 설정값을 무조건 크게 하거나 모델을 복잡하게 만든다고 해서 좋은 결과를 얻는 것은 아닙니다. 오히려 과적합이 발생하거나 학습 시간만 증가할 수도 있습니다.
이처럼 여러 설정을 비교하여 적절한 조합을 찾는 과정을 하이퍼파라미터 튜닝(Hyperparameter Tuning)이라고 합니다.
하이퍼파라미터 튜닝은 랜덤 포레스트, 그래디언트 부스팅, 인공신경망(MLP), 서포트 벡터 머신(SVM), 릿지·라쏘 회귀 등 다양한 머신러닝 알고리즘에 활용됩니다.
이번 글에서는 하이퍼파라미터의 기본 개념부터 주요 탐색 방법, 교차검증과의 관계, 실제 고객 이탈 예측 사례, 계산 예산, 과적합과 데이터 누수, 결과 해석까지 살펴보겠습니다.
하이퍼파라미터 튜닝과 모델 파라미터의 차이
튜닝의 기본 개념과 모델이 데이터에서 학습하는 파라미터의 차이를 알아봅니다.
예를 들어 랜덤 포레스트에서는 나무 수, 최대 깊이, 최소 리프 표본 수 등을 설정할 수 있습니다. 인공신경망에서는 은닉층 구조, 학습률, 규제 강도 등을 조절할 수 있습니다. 이러한 설정값을 하이퍼파라미터(Hyperparameter)라고 합니다.
하이퍼파라미터는 일반적으로 모델을 학습하기 전에 지정하거나 별도의 탐색 절차를 통해 선택합니다. 반면 회귀계수나 신경망의 가중치처럼 학습 데이터로부터 직접 추정되는 값은 모델 파라미터(Model Parameter)라고 합니다.
튜닝의 목적은 단순히 학습 데이터의 점수를 가장 높이는 것이 아닙니다. 새로운 데이터에서도 좋은 예측 성능을 보일 수 있도록 적절한 설정을 찾는 것입니다. 따라서 하이퍼파라미터 튜닝에서는 학습 데이터의 성능뿐 아니라 교차검증이나 별도의 검증 데이터에서 얻은 성능을 중요하게 확인합니다.
파라미터는 모델이 학습 과정에서 데이터로부터 추정하는 값입니다. 예를 들어 선형회귀의 회귀계수, 인공신경망의 가중치와 편향 등이 해당합니다. 반면 하이퍼파라미터는 학습 방법이나 모델의 구조를 결정하는 설정값입니다.
| 구분 | 모델 파라미터 | 하이퍼파라미터 |
|---|---|---|
| 의미 | 데이터로부터 학습되는 값 | 학습 과정이나 모델 구조를 결정하는 설정 |
| 결정 방식 | 학습 알고리즘이 추정 | 사용자 지정 또는 탐색 절차로 선택 |
| 선형회귀 예시 | 회귀계수, 절편 | 규제 강도 |
| 랜덤 포레스트 예시 | 각 나무의 분할 구조 | 나무 수, 최대 깊이 |
| MLP 예시 | 가중치, 편향 | 은닉층 구조, 학습률 |
예를 들어 릿지 회귀에서는 회귀계수가 파라미터이고, 회귀계수에 적용하는 규제 강도는 하이퍼파라미터입니다. 하이퍼파라미터가 달라지면 같은 데이터를 사용하더라도 학습되는 파라미터와 최종 예측 결과가 달라질 수 있습니다. 따라서 두 개념을 구분하는 것은 모델 학습과 튜닝 과정을 이해하는 데 중요합니다.
튜닝이 필요한 이유와 주요 설정값
튜닝이 필요한 이유와 알고리즘별 주요 하이퍼파라미터를 살펴봅니다.
기본 설정을 사용하더라도 예측모형을 만들 수 있지만, 이러한 설정이 모든 데이터에 적절하다고 보장할 수는 없습니다. 예를 들어 고객 500명의 데이터와 고객 100만 명의 데이터는 크기와 구조가 크게 다릅니다. 또한 설명변수가 10개인 문제와 1,000개인 문제도 적절한 모델 복잡도가 다를 수 있습니다.
하이퍼파라미터 튜닝은 이러한 차이를 고려하여 모델의 학습 방식을 조정하는 데 사용됩니다. 대표적인 목적은 다음과 같습니다.
- 새로운 데이터에서의 예측 성능 개선
- 과적합과 과소적합 완화
- 모델 복잡도 조절
- 학습 시간과 계산 비용 관리
- 실제 업무에 적합한 성능 지표 최적화
다만 모든 문제에서 복잡한 튜닝이 필요한 것은 아닙니다. 데이터가 적거나 단순한 모델로도 충분한 성능이 나타난다면 기본 설정 또는 제한적인 탐색만으로도 적절한 결과를 얻을 수 있습니다.
| 알고리즘 | 대표적인 하이퍼파라미터 |
|---|---|
| 릿지·라쏘 회귀 | 규제 강도 |
| 엘라스틱넷 | 규제 강도, L1·L2 혼합 비율 |
| KNN | 이웃 수, 거리 측정 방식 |
| SVM | C, 커널 종류, gamma |
| 의사결정나무 | 최대 깊이, 최소 리프 표본 수 |
| 랜덤 포레스트 | 나무 수, 최대 깊이, 분할 변수 수 |
| 그래디언트 부스팅 | 학습률, 나무 수, 최대 깊이 |
| MLP | 은닉층 구조, 학습률, 규제 강도 |
예를 들어 랜덤 포레스트의 최대 깊이를 지나치게 크게 설정하면 개별 나무가 학습 데이터를 세밀하게 나누면서 복잡해질 수 있습니다. 반대로 최대 깊이를 너무 작게 설정하면 중요한 관계를 충분히 학습하지 못할 수도 있습니다.
MLP에서는 은닉층과 뉴런 수를 늘리면 복잡한 관계를 표현할 수 있지만 학습 시간이 증가하고 과적합 위험도 높아질 수 있습니다. 따라서 하이퍼파라미터 튜닝에서는 각 설정이 모델에 어떤 영향을 주는지 이해하고 적절한 탐색 범위를 정하는 것이 중요합니다.
그리드 서치(Grid Search)란 무엇인가요?
그리드 서치는 미리 지정한 하이퍼파라미터의 모든 조합을 평가하는 방법입니다.
예를 들어 랜덤 포레스트에서 다음 설정을 비교한다고 가정해 보겠습니다.
- 나무 수: 100개, 300개
- 최대 깊이: 5, 10, 20
- 최소 리프 표본 수: 1, 5
이 경우 가능한 조합은 2 × 3 × 2 = 12개입니다. 그리드 서치는 이 12개 조합을 모두 학습하고 검증 성능을 비교합니다.
그리드 서치 예시
| 조합 | 나무 수 | 최대 깊이 | 최소 리프 표본 수 |
|---|---|---|---|
| A | 100 | 5 | 1 |
| B | 100 | 5 | 5 |
| C | 100 | 10 | 1 |
| D | 100 | 10 | 5 |
| E | 300 | 20 | 1 |
| F | 300 | 20 | 5 |
표에는 전체 12개 조합 중 일부만 표시했습니다.
그리드 서치의 장점은 지정한 후보 조합을 빠짐없이 비교할 수 있다는 것입니다. 하지만 탐색할 하이퍼파라미터가 많아지면 조합의 수가 급격히 증가합니다. 예를 들어 다섯 개의 하이퍼파라미터에 각각 10개의 후보값을 지정하면 총 100,000개 조합이 만들어집니다.
따라서 그리드 서치는 탐색 범위가 비교적 작거나 특정 구간을 세밀하게 비교할 때 적합할 수 있습니다.
랜덤 서치(Random Search)란 무엇인가요?
랜덤 서치는 미리 지정한 탐색 범위에서 하이퍼파라미터 조합을 무작위로 선택하여 평가하는 방법입니다.
그리드 서치가 모든 후보 조합을 비교한다면, 랜덤 서치는 정해진 횟수만큼 조합을 선택하여 평가합니다. 예를 들어 나무 수를 100개에서 1,000개 사이, 최대 깊이를 3에서 30 사이로 설정했다고 가정해 보겠습니다. 랜덤 서치는 이 범위에서 여러 조합을 선택하고 각각의 검증 성능을 계산합니다.
랜덤 서치 예시
| 탐색 순서 | 나무 수 | 최대 깊이 | 검증 ROC-AUC |
|---|---|---|---|
| 1 | 210 | 8 | 0.82 |
| 2 | 540 | 15 | 0.84 |
| 3 | 760 | 6 | 0.83 |
| 4 | 320 | 12 | 0.85 |
| 5 | 900 | 25 | 0.82 |
이 예시에서는 네 번째 조합이 가장 높은 검증 ROC-AUC를 보였습니다. 랜덤 서치는 모든 조합을 평가하지 않기 때문에 제한된 시간 안에 넓은 탐색 공간을 확인할 수 있다는 장점이 있습니다.
또한 어떤 하이퍼파라미터가 성능에 중요한지 미리 알기 어려울 때 그리드 서치보다 다양한 값을 탐색하는 데 유리할 수 있습니다. 하지만 무작위로 조합을 선택하므로 성능이 좋은 영역을 충분히 탐색하지 못할 가능성도 있습니다. 따라서 탐색 횟수와 하이퍼파라미터의 범위를 적절하게 설정해야 합니다.
베이지안 최적화와 탐색 방법 비교
베이지안 최적화의 원리와 그리드·랜덤 서치의 차이를 비교합니다.
그리드 서치나 일반적인 랜덤 서치는 앞서 평가한 조합의 성능을 다음 후보 선택에 직접 반영하지 않습니다. 반면 베이지안 최적화는 이미 평가한 조합과 그 성능을 바탕으로 탐색 공간의 특성을 추정하고, 좋은 성능이 기대되거나 불확실성이 큰 영역을 추가로 탐색합니다.
예를 들어 랜덤 포레스트의 최대 깊이가 10에서 15 사이일 때 좋은 성능이 나타났다면 이후 탐색에서는 해당 구간을 더 자세하게 확인할 수 있습니다. 하지만 이미 좋은 결과가 나온 구간만 탐색하는 것은 아닙니다. 아직 충분히 평가하지 않은 영역도 확인하여 더 좋은 조합을 찾을 가능성을 고려합니다.
이처럼 현재 성능이 좋은 영역을 활용하는 것과 새로운 영역을 탐색하는 것 사이의 균형이 중요합니다.
주요 특징
베이지안 최적화는 하나의 모델을 학습하고 평가하는 비용이 큰 경우 유용할 수 있습니다. 다만 탐색 결과를 바탕으로 다음 후보를 선택하기 위한 별도의 계산 과정이 필요하며, 탐색 공간의 구성과 최적화 알고리즘에 따라 결과가 달라질 수 있습니다.
또한 베이지안 최적화라는 이름이 반드시 베이지안 통계모형을 최종 예측모형으로 사용한다는 의미는 아닙니다. 베이지안 최적화는 하이퍼파라미터를 탐색하는 방법이며, 최종 예측모형은 랜덤 포레스트나 XGBoost, MLP 등 다양한 알고리즘이 될 수 있습니다.
| 구분 | 그리드 서치 | 랜덤 서치 | 베이지안 최적화 |
|---|---|---|---|
| 탐색 방식 | 지정한 조합을 모두 평가 | 조합을 무작위로 선택 | 이전 결과를 이용해 다음 후보 선택 |
| 탐색 범위 | 사전에 지정한 격자 | 지정한 분포와 범위 | 지정한 탐색 공간 |
| 주요 장점 | 결과 비교가 단순하고 체계적 | 제한된 예산에서 폭넓은 탐색 | 이전 평가 결과 활용 |
| 주요 한계 | 조합 수가 빠르게 증가 | 유망한 영역을 놓칠 수 있음 | 최적화 절차가 복잡할 수 있음 |
| 적합한 상황 | 소규모 탐색 공간 | 넓은 탐색 공간 | 평가 비용이 큰 모델 |
어떤 방법이 항상 가장 좋은 결과를 만드는 것은 아닙니다. 예를 들어 조정할 하이퍼파라미터가 두 개뿐이고 후보값도 적다면 그리드 서치가 간단하고 충분할 수 있습니다. 반면 조정해야 할 설정이 많고 탐색 범위가 넓다면 랜덤 서치가 효율적일 수 있습니다.
하나의 모델을 학습하는 데 많은 시간이 필요하다면 이전 탐색 결과를 활용하는 베이지안 최적화를 고려할 수 있습니다. 중요한 것은 알고리즘의 이름보다 탐색 공간과 계산 예산, 평가 방법을 적절하게 설정하는 것입니다.
실제 사례: 고객 이탈 예측모델 튜닝과 결과 해석
고객 이탈 예측 사례에서 탐색 설정부터 상위 조합의 성능 해석까지 살펴봅니다.
전체 고객 중 650명은 서비스를 해지했고, 4,350명은 서비스를 유지했습니다. 전체 해지율은 13%입니다. 분석에는 이용 기간, 월 요금, 계약 유형, 최근 서비스 이용 횟수, 고객센터 문의 횟수 등을 사용했습니다. 전체 데이터를 학습용 4,000명과 최종 평가용 1,000명으로 나누었습니다.
학습 데이터 내부에서는 층화 5-Fold 교차검증을 이용해 랜덤 포레스트의 하이퍼파라미터를 탐색했다고 가정하겠습니다. 관심 사건인 해지 고객의 비율이 낮으므로 튜닝 기준은 PR-AUC로 설정했습니다.
탐색한 하이퍼파라미터
| 하이퍼파라미터 | 탐색 범위 |
|---|---|
| 나무 수 | 100~1,000 |
| 최대 깊이 | 3~30 |
| 최소 리프 표본 수 | 1~20 |
| 분할 변수 수 | 전체 변수의 일부 |
| 클래스 가중치 | 기본값·균형 가중치 |
탐색 방법은 랜덤 서치로 설정하고 총 30개의 조합을 평가했다고 가정하겠습니다. 각 조합은 동일한 교차검증 분할에서 평가하여 성능을 비교할 수 있도록 했습니다.
| 순위 | 나무 수 | 최대 깊이 | 최소 리프 표본 수 | 평균 PR-AUC |
|---|---|---|---|---|
| 1 | 320 | 12 | 5 | 0.518 |
| 2 | 540 | 10 | 4 | 0.515 |
| 3 | 760 | 15 | 8 | 0.511 |
| 4 | 210 | 8 | 3 | 0.503 |
| 5 | 900 | 25 | 1 | 0.487 |
이 결과에서는 나무 수 320개, 최대 깊이 12, 최소 리프 표본 수 5인 조합의 평균 PR-AUC가 0.518로 가장 높았습니다. 따라서 이 조합을 최종 후보로 선택할 수 있습니다.
하지만 1위와 2위의 PR-AUC 차이는 0.003에 불과합니다. 이러한 차이는 검증 폴드의 구성에 따른 변동과 비교하면 매우 작을 수 있습니다.
따라서 성능 차이가 작은 경우에는 단순히 가장 높은 점수를 얻은 조합만 선택하기보다 모델의 복잡도, 학습 시간, 점수의 안정성 등을 함께 고려하는 것이 좋습니다. 또한 탐색 범위 안에서 가장 좋은 조합을 찾았다는 사실이 가능한 모든 하이퍼파라미터 조합 중 전역적으로 최적이라는 의미는 아닙니다.
더 넓은 탐색 공간이나 다른 데이터 분할에서는 다른 조합이 좋은 결과를 보일 수 있습니다.
튜닝 전과 튜닝 후의 성능은 어떻게 비교하나요?
하이퍼파라미터 튜닝의 효과를 확인하려면 기본 설정 모델과 튜닝한 모델을 동일한 평가 조건에서 비교하는 것이 좋습니다.
예를 들어 다음과 같은 결과가 나타났다고 가정해 보겠습니다.
| 모델 | 교차검증 평균 PR-AUC |
|---|---|
| 기본 설정 랜덤 포레스트 | 0.472 |
| 튜닝한 랜덤 포레스트 | 0.518 |
이 예시에서는 튜닝한 모델의 평균 PR-AUC가 0.046 높게 나타났습니다.
다만 두 점수가 모두 하이퍼파라미터를 선택하는 과정에서 확인한 개발 데이터의 검증 결과라면, 이것만으로 실제 일반화 성능이 같은 정도로 개선되었다고 결론 내리기는 어렵습니다.
튜닝 과정에서는 여러 후보를 비교하므로 우연히 검증 데이터에 잘 맞는 조합이 선택될 수 있기 때문입니다.
따라서 최종 모델을 선택한 뒤에는 별도로 보관한 평가 데이터에서 성능을 확인하는 것이 좋습니다. 실제로 튜닝한 모델이 최종 평가 데이터에서도 더 높은 성능을 보일 수 있지만, 성능 차이가 작거나 오히려 기본 설정 모델보다 낮을 수도 있습니다.
이러한 결과도 튜닝 과정의 한계와 모델의 일반화 성능을 이해하는 데 중요합니다.
교차검증은 튜닝 과정에서 어떤 역할을 하나요?
하이퍼파라미터 튜닝에서는 각 설정 조합의 성능을 공정하게 비교하는 것이 중요합니다.
예를 들어 나무 수 100개인 모델은 고객 A 집단에서 평가하고, 나무 수 300개인 모델은 고객 B 집단에서 평가한다면 데이터 구성 차이 때문에 성능을 직접 비교하기 어려울 수 있습니다. 교차검증은 동일한 분할 구조를 사용하여 여러 설정을 비교하는 데 도움이 됩니다.
5-Fold 교차검증을 사용하면 각 하이퍼파라미터 조합에 대해 다섯 번의 학습과 검증을 수행하고 평균 점수를 계산합니다. 예를 들어 30개 조합을 평가한다면 총 150회의 모델 학습이 필요할 수 있습니다.
| 탐색 조합 수 | 교차검증 폴드 수 | 총 모델 학습 횟수 |
|---|---|---|
| 10개 | 5 | 50회 |
| 30개 | 5 | 150회 |
| 50개 | 5 | 250회 |
| 100개 | 5 | 500회 |
이 표는 각 조합을 모든 폴드에서 한 번씩 학습한다고 가정한 예시입니다. 실제 계산 횟수는 조기 종료, 탐색 알고리즘, 추가 재학습 여부 등에 따라 달라질 수 있습니다.
교차검증을 활용하면 여러 데이터 구성에서 모델의 성능을 확인할 수 있지만, 검증 점수가 가장 높은 조합을 선택했다면 그 점수 자체에는 선택 편향이 포함될 수 있습니다. 따라서 최종 평가 데이터 또는 중첩 교차검증 등을 통해 모델 선택 절차의 성능을 별도로 평가하는 것이 좋습니다.
탐색 예산과 하이퍼파라미터 탐색 범위
제한된 계산 자원을 어떻게 배분하고 탐색 범위를 정할지 알아봅니다.
특히 모델 학습에 많은 시간이 필요하거나 탐색할 하이퍼파라미터가 많으면 계산 비용이 빠르게 증가합니다. 따라서 튜닝을 시작하기 전에 사용할 수 있는 시간이나 평가 횟수 등의 제한을 정하는 것이 중요합니다. 이를 탐색 예산(Search Budget)이라고 합니다.
예를 들어 다음과 같은 탐색 전략을 사용할 수 있습니다.
| 탐색 방식 | 예산 예시 | 목적 |
|---|---|---|
| 빠른 탐색 | 10개 조합 | 기본적인 설정 비교 |
| 일반 탐색 | 30개 조합 | 여러 후보를 비교 |
| 폭넓은 탐색 | 100개 조합 | 더 넓은 탐색 공간 확인 |
위 조합 수는 설명을 위한 예시이며 실제 소요 시간이나 권장 설정을 의미하지 않습니다.
탐색 예산을 늘리면 더 많은 후보를 평가할 수 있지만 항상 더 좋은 모델을 찾는 것은 아닙니다. 예를 들어 데이터에 예측에 필요한 정보가 충분하지 않다면 하이퍼파라미터를 아무리 많이 조정하더라도 예측 성능이 크게 개선되지 않을 수 있습니다.
또한 탐색 예산이 늘어날수록 계산 비용이 증가하므로 성능 개선 폭과 비용을 함께 고려해야 합니다. 실무에서는 처음부터 매우 넓은 범위를 탐색하기보다 기본 설정을 평가하고, 중요한 하이퍼파라미터를 중심으로 탐색 범위를 조정하는 접근도 활용할 수 있습니다.
예를 들어 랜덤 포레스트의 최대 깊이를 3에서 5 사이로만 탐색한다면 그 범위 밖에 더 좋은 설정이 존재하더라도 찾을 수 없습니다. 반대로 너무 넓은 범위를 설정하면 제한된 탐색 예산 안에서 유망한 구간을 충분히 확인하지 못할 수 있습니다.
따라서 탐색 범위는 알고리즘의 특성과 데이터 규모를 고려해 설정하는 것이 좋습니다.
연속형 하이퍼파라미터
학습률이나 규제 강도처럼 연속적인 값을 가지는 설정은 탐색 범위를 신중하게 정해야 합니다. 예를 들어 학습률을 0.0001부터 0.1까지 탐색한다면 일정한 간격으로만 후보를 선택하기보다 로그 스케일을 활용하여 여러 크기의 값을 비교할 수 있습니다.
정수형 하이퍼파라미터
나무 수, 최대 깊이, 뉴런 수 등은 정수값을 사용합니다. 이러한 설정은 합리적인 범위에서 여러 후보를 평가할 수 있습니다.
범주형 하이퍼파라미터
활성화 함수나 최적화 알고리즘, 분할 기준처럼 여러 선택지 중 하나를 고르는 설정도 있습니다. 예를 들어 MLP의 활성화 함수로 ReLU와 Tanh를 비교하거나, SVM의 커널로 선형 커널과 RBF 커널을 비교할 수 있습니다.
이러한 설정들을 하나의 탐색 공간에 포함할 수 있지만, 실제로 지원되는 조합은 알고리즘과 라이브러리에 따라 달라질 수 있습니다.
튜닝에서 과적합은 어떻게 발생하나요?
과적합은 모델 학습 과정뿐 아니라 하이퍼파라미터 튜닝 과정에서도 발생할 수 있습니다.
예를 들어 동일한 검증 데이터에서 1,000개의 설정 조합을 평가했다고 가정해 보겠습니다. 이 중 일부 조합은 실제 일반화 성능이 뛰어나지 않더라도 우연히 검증 데이터에서 높은 점수를 얻을 수 있습니다. 탐색한 조합이 많아질수록 이러한 우연한 결과를 선택할 가능성도 커질 수 있습니다.
이러한 현상을 검증 데이터에 대한 과적합 또는 모델 선택 편향이라고 설명할 수 있습니다. 이를 줄이려면 다음과 같은 방법을 고려해야 합니다.
- 튜닝 과정에서 학습 데이터 내부의 교차검증 사용
- 최종 평가 데이터는 모델 선택이 끝날 때까지 별도로 보관
- 필요한 경우 중첩 교차검증 활용
- 성능 차이가 작은 경우 모델의 복잡도와 안정성도 검토
- 탐색 과정에서 평가 지표와 데이터 분할 방식을 일관되게 유지
특히 최종 평가 데이터에서 성능이 낮게 나왔다고 해서 해당 점수를 기준으로 반복적으로 하이퍼파라미터를 수정하면 최종 평가 데이터 역시 모델 선택 과정에 사용되는 문제가 발생합니다. 따라서 튜닝과 최종 성능 평가를 명확하게 구분하는 것이 중요합니다.
데이터 누수를 방지하려면 어떻게 해야 하나요?
하이퍼파라미터 튜닝에서도 데이터 누수(Data Leakage)는 중요한 문제입니다.
예를 들어 전체 데이터에서 결측값을 대체하거나 표준화한 뒤 교차검증을 수행하면 검증 폴드의 정보가 학습 과정에 반영될 수 있습니다. 특히 하이퍼파라미터 탐색에서는 이러한 누수가 모든 후보 조합의 평가에 영향을 줄 수 있습니다.
따라서 올바른 튜닝에서는 데이터 분할을 먼저 수행하고, 각 학습 폴드 안에서 전처리 기준을 추정해야 합니다.
올바른 튜닝 절차
- 전체 데이터를 개발용과 최종 평가용으로 분리합니다.
- 개발용 데이터에서 교차검증 폴드를 구성합니다.
- 각 학습 폴드에서 결측값 대체와 표준화 등 전처리를 학습합니다.
- 각 하이퍼파라미터 조합으로 모델을 학습합니다.
- 해당 검증 폴드에서 성능을 계산합니다.
- 검증 결과를 종합하여 최종 설정을 선택합니다.
- 선택된 설정으로 개발용 전체 데이터를 다시 학습합니다.
- 별도로 보관한 평가 데이터에서 최종 성능을 확인합니다.
실제 구현에서는 전처리와 모델을 하나의 파이프라인으로 구성하면 데이터 누수를 방지하는 데 도움이 됩니다. 또한 동일 고객의 반복 관측값이나 시간 순서가 있는 데이터에서는 단순 무작위 교차검증 대신 그룹 또는 시간 기준 분할을 고려해야 합니다.
평가 지표 선택과 최적 모델 판단
문제에 맞는 평가 지표를 선택하고 점수와 모델 복잡도를 함께 판단합니다.
예를 들어 고객 이탈 예측에서 정확도를 기준으로 튜닝한다면 다수 범주인 유지 고객을 잘 맞히는 설정이 선택될 수 있습니다. 반면 PR-AUC를 기준으로 튜닝하면 해지 고객을 구분하는 데 유용한 예측 순위를 제공하는 설정이 선택될 수 있습니다.
따라서 탐색을 시작하기 전에 분석 목적에 맞는 평가 지표를 선택하는 것이 중요합니다.
분류 문제
| 지표 | 적절한 활용 상황 |
|---|---|
| 정확도 | 범주 비율과 오류 비용이 비교적 균형적인 경우 |
| 정밀도 | 잘못된 양성 판정을 줄이는 것이 중요한 경우 |
| 재현율 | 실제 양성 사례를 놓치지 않는 것이 중요한 경우 |
| F1 점수 | 정밀도와 재현율의 균형이 중요한 경우 |
| ROC-AUC | 양성과 음성의 전반적인 순위 구분 능력 평가 |
| PR-AUC | 관심 범주의 비율이 낮은 문제 |
| 로그 손실 | 예측 확률의 품질을 중요하게 평가할 때 |
회귀 문제
| 지표 | 적절한 활용 상황 |
|---|---|
| MAE | 평균적인 절대 예측 오차가 중요한 경우 |
| RMSE | 큰 예측 오차에 더 큰 가중치를 두고 싶은 경우 |
| R² | 기준 예측과 비교한 설명·예측 성능을 평가할 때 |
예를 들어 대출 연체 고객을 놓치는 비용이 크다면 재현율을 중요하게 고려할 수 있습니다. 반대로 고객에게 고가의 혜택을 제공하는 마케팅 캠페인에서는 잘못된 양성 판정으로 발생하는 비용을 줄이는 것이 중요할 수 있습니다.
이처럼 평가 지표는 통계적인 성능뿐 아니라 실제 예측 결과를 어떻게 활용할지도 고려하여 선택해야 합니다.
하지만 성능 차이가 매우 작다면 계산 비용과 모델의 복잡도를 함께 고려하는 것이 좋습니다. 예를 들어 다음과 같은 결과가 나타났다고 가정해 보겠습니다.
| 모델 | 평균 PR-AUC | 학습 시간 |
|---|---|---|
| A | 0.520 | 2분 |
| B | 0.523 | 12분 |
| C | 0.521 | 25분 |
모델 B의 평균 PR-AUC는 0.523으로 가장 높습니다. 하지만 모델 A와의 차이는 0.003에 불과한 반면 학습 시간은 여섯 배입니다. 이러한 상황에서는 검증 점수의 변동과 실제 운영 환경을 고려하여 모델 A를 선택하는 것이 합리적일 수도 있습니다.
특히 모델을 자주 다시 학습해야 하거나 계산 비용에 제한이 있다면 작은 성능 차이보다 운영 효율성이 중요할 수 있습니다. 따라서 하이퍼파라미터 튜닝의 목적은 무조건 가장 복잡하고 높은 점수를 기록한 모델을 선택하는 것이 아니라, 성능과 안정성, 비용 사이에서 적절한 균형을 찾는 것입니다.
하이퍼파라미터 튜닝 결과는 어떻게 보고하나요?
하이퍼파라미터 튜닝 결과를 보고할 때는 사용한 탐색 방법과 탐색 범위, 평가 지표, 교차검증 방식, 선택된 설정, 최종 성능을 함께 제시하는 것이 좋습니다.
앞서 살펴본 고객 이탈 예측 사례를 이용하면 다음과 같이 작성할 수 있습니다.
결과 보고 예시
고객의 다음 달 서비스 해지 여부를 예측하기 위해 랜덤 포레스트 분류모형의 하이퍼파라미터를 최적화하였다. 전체 5,000명의 고객 중 4,000명을 모델 개발에 사용하고, 나머지 1,000명을 최종 평가를 위해 별도로 보관하였다. 하이퍼파라미터 탐색에는 랜덤 서치를 사용하였으며, 총 30개의 조합을 층화 5-Fold 교차검증으로 평가하였다. 최적화 지표는 PR-AUC로 설정하였다. 탐색 결과 나무 수 320개, 최대 깊이 12, 최소 리프 표본 수 5인 조합에서 평균 PR-AUC가 0.518로 가장 높게 나타났다. 기본 설정 모델의 평균 PR-AUC는 0.472로, 튜닝된 모델이 개발 데이터의 교차검증에서 더 높은 성능을 보였다.
실제 분석에서는 최종 평가 데이터에서 얻은 성능을 함께 제시해야 합니다. 또한 탐색한 하이퍼파라미터 범위와 탐색 횟수, 난수 시드, 모델의 주요 설정을 기록하면 분석의 재현성을 높일 수 있습니다. 성능 차이가 작은 경우에는 상위 후보들의 점수 차이와 변동성도 함께 확인하는 것이 좋습니다.
하이퍼파라미터 튜닝은 어디에 활용할 수 있나요?
하이퍼파라미터 튜닝은 특정한 예측 알고리즘에만 적용되는 과정이 아닙니다.
모델의 학습 설정을 조정할 수 있는 다양한 머신러닝 분석에 활용됩니다.
분류모형 최적화
로지스틱 회귀, KNN, SVM, 의사결정나무, 랜덤 포레스트, 그래디언트 부스팅, MLP 등의 분류 성능을 개선하는 데 사용할 수 있습니다.
회귀모형 최적화
릿지, 라쏘, 엘라스틱넷, 랜덤 포레스트 회귀, 그래디언트 부스팅 회귀, MLP 회귀 등의 예측 오차를 줄이기 위한 설정을 탐색할 수 있습니다.
복잡도와 과적합 조절
의사결정나무의 최대 깊이, 규제회귀의 규제 강도, MLP의 은닉층 구조 등을 조절하여 모델 복잡도와 일반화 성능 사이의 균형을 찾을 수 있습니다.
자동화된 머신러닝(AutoML)
여러 알고리즘과 하이퍼파라미터 조합을 자동으로 비교하는 AutoML에서도 튜닝은 중요한 과정입니다. AutoML은 사용자가 탐색 범위와 평가 지표, 시간 예산 등을 설정하면 여러 모델과 설정을 비교하여 유망한 후보를 찾도록 구성할 수 있습니다.
다만 AutoML이라고 해서 가능한 모든 설정을 평가하거나 최적의 모델을 반드시 찾는 것은 아닙니다. 탐색 범위와 계산 예산, 데이터 특성에 따라 결과가 달라집니다.
하이퍼파라미터 튜닝은 모델의 설정을 바꾸며 좋은 예측 성능을 찾는 과정입니다.
하이퍼파라미터 튜닝은 머신러닝 모델의 학습 방법과 복잡도를 결정하는 설정값을 조정하여 검증 성능이 좋은 조합을 찾는 과정입니다.
대표적인 탐색 방법으로는 그리드 서치, 랜덤 서치, 베이지안 최적화가 있습니다. 그리드 서치는 지정한 조합을 모두 비교하고, 랜덤 서치는 제한된 예산 안에서 여러 조합을 무작위로 탐색하며, 베이지안 최적화는 이전 평가 결과를 활용하여 다음 후보를 선택합니다.
이러한 탐색 방법들은 모두 모델의 예측 성능을 개선하는 데 활용할 수 있지만, 어떤 방법이 항상 가장 우수한 것은 아닙니다. 데이터의 규모와 탐색 공간, 모델 학습 시간, 계산 예산에 따라 적절한 방법이 달라집니다.
또한 튜닝에서 가장 높은 점수를 얻은 조합이 실제로 가장 좋은 모델이라고 보장할 수는 없습니다. 따라서 교차검증을 이용하여 여러 조합을 비교하고, 최종 평가 데이터는 모델 선택이 끝난 뒤 사용해야 합니다. 특히 데이터 누수를 방지하고 분석 목적에 맞는 평가 지표를 선택하는 것이 중요합니다.
하이퍼파라미터 튜닝의 핵심은 가능한 모든 설정을 무작정 탐색하는 것이 아니라, 적절한 탐색 범위와 검증 방법을 이용하여 새로운 데이터에서도 안정적으로 작동하는 모델을 찾는 데 있습니다.