Table of Contents
728x90
Validation set(검증 세트)는 모델의 성능을 평가하고 최적화하기 위해 데이터를 나누는 중요한 단계 중 하나입니다. 검증 세트를 만드는 이유는 다음과 같습니다:
1. 모델 튜닝
검증 세트는 하이퍼파라미터 튜닝에 사용됩니다. 모델의 성능을 최적화하기 위해 다양한 하이퍼파라미터 값을 시도할 때, 검증 세트를 사용하여 각 설정의 성능을 평가하고 가장 좋은 하이퍼파라미터를 선택할 수 있습니다.
2. 과적합 방지
훈련 세트만을 사용하여 모델을 학습하면 모델이 훈련 데이터에 과적합(overfitting)될 수 있습니다. 검증 세트를 사용하여 모델의 성능을 평가하면, 과적합을 방지하고 일반화 성능을 향상시킬 수 있습니다. 과적합된 모델은 훈련 데이터에서는 높은 성능을 보이지만, 새로운 데이터에서는 성능이 저하됩니다.
3. 모델 평가
검증 세트를 사용하여 모델의 초기 성능을 평가할 수 있습니다. 이는 테스트 세트를 사용하기 전에 모델의 성능을 확인하고 개선할 부분을 찾는 데 유용합니다.
4. 비교 및 선택
여러 모델을 비교할 때 검증 세트를 사용하여 각 모델의 성능을 평가할 수 있습니다. 이를 통해 가장 성능이 좋은 모델을 선택할 수 있습니다.
검증 세트의 사용 예제
다음은 Scikit-learn을 사용하여 검증 세트를 만드는 간단한 예제입니다.
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 예제 데이터 생성
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
# 데이터 분할: 60% 훈련 세트, 20% 검증 세트, 20% 테스트 세트
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.4, random_state=42)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)
# 모델 학습
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)
# 검증 세트에서 성능 평가
y_val_pred = model.predict(X_val)
val_accuracy = accuracy_score(y_val, y_val_pred)
print(f'Validation Accuracy: {val_accuracy:.4f}')
# 하이퍼파라미터 튜닝 (간단한 예)
best_accuracy = 0
best_n_estimators = 0
for n in range(10, 101, 10):
model = RandomForestClassifier(n_estimators=n, random_state=42)
model.fit(X_train, y_train)
y_val_pred = model.predict(X_val)
val_accuracy = accuracy_score(y_val, y_val_pred)
if val_accuracy > best_accuracy:
best_accuracy = val_accuracy
best_n_estimators = n
print(f'Best Validation Accuracy: {best_accuracy:.4f} with n_estimators={best_n_estimators}')
# 최적 모델을 테스트 세트에서 평가
model = RandomForestClassifier(n_estimators=best_n_estimators, random_state=42)
model.fit(X_train, y_train)
y_test_pred = model.predict(X_test)
test_accuracy = accuracy_score(y_test, y_test_pred)
print(f'Test Accuracy: {test_accuracy:.4f}')
설명
- 데이터를 훈련 세트(60%), 검증 세트(20%), 테스트 세트(20%)로 분할합니다.
- 훈련 세트를 사용하여 모델을 학습합니다.
- 검증 세트를 사용하여 모델의 성능을 평가하고, 하이퍼파라미터 튜닝을 수행합니다.
- 최적의 하이퍼파라미터를 찾은 후, 테스트 세트를 사용하여 최종 모델의 성능을 평가합니다.
이 과정을 통해 모델이 새로운 데이터에 대해 잘 일반화할 수 있도록 하고, 최적의 성능을 발휘하도록 할 수 있습니다.
'ML' 카테고리의 다른 글
Adaboost(Adaptive Boosting) (0) | 2024.05.30 |
---|---|
Model Explanation 모델설명 (1) | 2024.05.30 |
Optimal Binning (0) | 2024.05.30 |
클러스터링에서 거리 계산 방법 (1) | 2024.05.29 |
클러스터링 Clustering (0) | 2024.05.29 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Transformer
- git
- 리스트
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- 손실함수
- Array
- Numpy
- PEFT
- Lora
- English
- 해시
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- Hugging Face
- LLM
- recursion #재귀 #자료구조 # 알고리즘
- RAG
- clustering
- Github
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- speaking
- classification
- 코딩테스트
- cnn
- 티스토리챌린지
- Python
- t5
- 오블완
- LIST
- nlp
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함