Table of Contents
728x90
Validation set(검증 세트)는 머신러닝 모델의 성능을 평가하고, 하이퍼파라미터 튜닝과 모델 선택을 위해 사용되는 데이터 세트입니다. 일반적으로 데이터 세트는 훈련 세트(training set), 검증 세트(validation set), 그리고 테스트 세트(test set)로 나뉩니다.
데이터 세트 분할
훈련 세트 (Training Set):
- 모델을 학습시키는 데 사용됩니다. 이 세트에서 모델은 입력 데이터와 해당 레이블을 학습하여 예측하는 방법을 배웁니다.
검증 세트 (Validation Set):
- 모델의 성능을 평가하고, 하이퍼파라미터를 조정하는 데 사용됩니다. 훈련 과정 동안 모델이 이 데이터를 통해 최적화되지 않도록 합니다.
- 모델이 훈련 세트에 과적합(overfitting)되지 않도록 돕습니다.
테스트 세트 (Test Set):
- 최종적으로 모델의 성능을 평가하는 데 사용됩니다. 이 세트는 모델이 훈련과 검증 과정에서 전혀 보지 못한 데이터로 구성됩니다.
검증 세트의 역할
- 하이퍼파라미터 튜닝: 모델의 하이퍼파라미터(예: 학습률, 규제 파라미터, 트리의 깊이 등)를 조정하기 위해 사용됩니다. 최적의 하이퍼파라미터 조합을 찾기 위해 여러 번 모델을 평가하고 비교합니다.
- 모델 선택: 다양한 모델을 비교하고, 가장 성능이 좋은 모델을 선택하는 데 사용됩니다.
- 과적합 방지: 모델이 훈련 데이터에 과적합되지 않도록 도와줍니다. 훈련 세트에서의 성능이 높더라도, 검증 세트에서의 성능이 낮다면 과적합의 징후일 수 있습니다.
검증 세트와 OOB 샘플
검증 세트와 OOB 샘플(Out-of-Bag samples)은 둘 다 모델의 성능을 평가하는 데 사용되지만, 그 개념과 사용 방식은 다릅니다.
- 검증 세트: 모델 학습 과정 외부의 독립된 데이터 세트로, 명시적으로 분리된 데이터를 사용하여 모델 성능을 평가합니다.
- OOB 샘플: 랜덤 포레스트와 같은 배깅(bagging) 알고리즘에서 사용되는 방법으로, 각 결정 트리가 학습되지 않은 데이터를 통해 자체적으로 성능을 평가합니다. 추가적인 데이터 세트를 필요로 하지 않습니다.
코드 예시
다음은 Scikit-learn을 사용하여 데이터를 훈련, 검증, 테스트 세트로 나누고, 검증 세트를 사용하여 모델을 평가하는 예제입니다.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, f1_score
# 데이터 로드
iris = load_iris()
X, y = iris.data, iris.target
# 데이터 분할 (훈련 세트 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)
# 모델 학습
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
# 검증 세트로 성능 평가
y_val_pred = clf.predict(X_val)
val_accuracy = accuracy_score(y_val, y_val_pred)
val_f1 = f1_score(y_val, y_val_pred, average='macro')
print("Validation Accuracy:", val_accuracy)
print("Validation F1 Score:", val_f1)
# 최종 테스트 세트로 성능 평가
y_test_pred = clf.predict(X_test)
test_accuracy = accuracy_score(y_test, y_test_pred)
test_f1 = f1_score(y_test, y_test_pred, average='macro')
print("Test Accuracy:", test_accuracy)
print("Test F1 Score:", test_f1)
이 코드는 Iris 데이터를 사용하여 랜덤 포레스트 모델을 학습시키고, 검증 세트와 테스트 세트로 성능을 평가하는 예제입니다. train_test_split
함수를 사용하여 데이터를 분할하고, 검증 세트에서의 성능을 기반으로 모델의 하이퍼파라미터를 조정하거나 최적의 모델을 선택할 수 있습니다.
요약
- 검증 세트 (Validation Set): 모델의 성능을 평가하고, 하이퍼파라미터 튜닝과 모델 선택에 사용되는 데이터 세트입니다.
- 훈련 세트 (Training Set): 모델을 학습시키는 데 사용되는 데이터 세트입니다.
- 테스트 세트 (Test Set): 최종적으로 모델의 성능을 평가하는 데 사용되는 데이터 세트입니다.
- OOB 샘플: 랜덤 포레스트와 같은 배깅 알고리즘에서 부트스트랩 샘플링 과정에서 선택되지 않은 데이터로 모델의 성능을 평가하는 방법입니다.
검증 세트를 사용하면 모델이 과적합되지 않도록 하고, 최적의 하이퍼파라미터와 모델을 선택하는 데 도움이 됩니다.
'ML' 카테고리의 다른 글
교차검증(Cross-Validation) (0) | 2024.05.29 |
---|---|
Classification Model 평가 및 지표 해석 (0) | 2024.05.29 |
Random Forest에서의 Out-of-Bag (OOB) (0) | 2024.05.29 |
Ensemble > Bagging(Bootstrap Aggregating), Random Forest (1) | 2024.05.29 |
Ensemble 앙상블 (0) | 2024.05.29 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- classification
- Github
- cnn
- PEFT
- Transformer
- 리스트
- RAG
- Array
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- 코딩테스트
- clustering
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- git
- 해시
- Lora
- 손실함수
- 파이썬
- English
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- Python
- t5
- nlp
- 티스토리챌린지
- speaking
- LLM
- LIST
- Numpy
- recursion #재귀 #자료구조 # 알고리즘
- Hugging Face
- 오블완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함