ycliper

Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
Скачать

🎯 효과적인 데이터 분할 방법 | Train/Validation/Test 완벽 가이드 – Week 1. Lesson 6.

뇌기반학습

학습법

교수법

뇌과학

뇌기반교수법

뇌기반학습법

학습과학

공부법

브레인

Автор: Deep Nexus One

Загружено: 2025-10-22

Просмотров: 22

Описание: 안녕하세요! LLM 설계자 육성 과정 Silver Track의 Week 1 Lesson 6입니다. 이번 영상에서는 **파인튜닝 성능을 좌우하는 데이터 분할 전략**을 배웁니다!

"잘못된 데이터 분할은 과적합의 지름길" - Train/Val/Test 분할 원칙부터 실전 팁까지 완벽 마스터하세요!

---

📚 이번 강의에서 배울 내용

• Train/Validation/Test의 역할
• 데이터셋 크기별 분할 비율
• 랜덤 분할 vs 계층적 분할
• 시계열 데이터 분할 전략
• 데이터 리케이지 방지법
• 교차 검증 (Cross-Validation)
• 실전 분할 코드 구현

---

⏰ 타임스탬프

00:00 인트로: 왜 데이터 분할이 중요한가?
01:49 Section 1. Train/Val/Test 이해
02:50 Section 2. 분할 방법: 랜덤, 계층적, 시간 기반
05:28 Section 3. 교차 검증
06:51 Section 4. 데이터 분할 플레이북

---

🔗 학습 자료 링크

🎯 전체 과정: https://hermes.deepnexusone.com/silver
📖 강의 자료: https://hermes.deepnexusone.com/resou...
📂 실습 코드:
💬 커뮤니티:

---

🎓 이 강의는 이런 분들께 추천합니다

✅ 데이터 분할을 대충 하고 계신 분
✅ 과적합 문제로 고민하는 분
✅ Test 셋 사용법이 헷갈리는 분
✅ 체계적인 분할 전략을 세우고 싶은 분

---

💡 Train/Val/Test 역할

Train (훈련 셋)
**역할**: 모델 학습에 직접 사용
**비율**: 70-80%
**주의**: 절대 검증/테스트에 재사용 금지

Validation (검증 셋)
**역할**: 하이퍼파라미터 튜닝, Early Stopping
**비율**: 10-15%
**주의**: 간접적으로 모델에 영향

Test (테스트 셋)
**역할**: 최종 성능 평가
**비율**: 10-15%
**주의**: 단 한 번만 사용, 절대 학습 금지

---

📊 데이터셋 크기별 분할 비율

소규모 (500개 미만)
*70:15:15 분할 권장*
Train: 350개 (70%)
Validation: 75개 (15%)
Test: 75개 (15%)

중규모 (500-5,000개)
*80:10:10 분할 권장*
Train: 800개 (80%)
Validation: 100개 (10%)
Test: 100개 (10%)

대규모 (5,000개 이상)
*85:10:5 또는 90:5:5*
Train: 9,000개 (90%)
Validation: 500개 (5%)
Test: 500개 (5%)

---

🔀 분할 전략

랜덤 분할 (Random Split)
```python
from sklearn.model_selection import train_test_split

Train + Val / Test 먼저 분할
train_val, test = train_test_split(
dataset, test_size=0.15, random_state=42
)

Train / Val 분할
train, val = train_test_split(
train_val, test_size=0.176, random_state=42
) # 0.176 = 15% of original
```

**장점**: 간단하고 빠름
**단점**: 클래스 불균형 시 편향 발생 가능

계층적 분할 (Stratified Split)
```python
클래스 비율 유지하며 분할
train_val, test = train_test_split(
dataset, test_size=0.15,
stratify=dataset['label'],
random_state=42
)
```

**장점**: 클래스 분포 유지
**적용**: 분류 작업, 불균형 데이터

---

🚫 데이터 리케이지 방지

리케이지란?
Train과 Test 간 정보 누출로 인한 성능 과대평가

흔한 리케이지 사례

*1. 중복 데이터*
```python
잘못된 예: 분할 전 중복 제거 안 함
train, test = split(dataset) # 중복 포함

올바른 예: 분할 전 중복 제거
dataset = dataset.drop_duplicates()
train, test = split(dataset)
```

*2. 시간 순서 무시*
```python
잘못된 예: 시계열 데이터를 랜덤 분할
train, test = random_split(timeseries_data)

올바른 예: 시간 순서 유지
cutoff = int(len(data) * 0.8)
train = data[:cutoff]
test = data[cutoff:]
```

*3. Test로 하이퍼파라미터 튜닝*
```python
잘못된 예
for lr in [0.001, 0.01, 0.1]:
model.train(train)
score = model.eval(test) # ❌ Test 사용

올바른 예
for lr in [0.001, 0.01, 0.1]:
model.train(train)
score = model.eval(val) # ✅ Validation 사용
```

---

🔄 교차 검증 (K-Fold Cross-Validation)

언제 사용?
데이터가 매우 작을 때 (< 500개)
성능의 신뢰 구간이 필요할 때



**주의**: 최종 Test 셋은 별도로 보관!

---

💻 실전 분할 코드

완전한 분할 파이프라인
```python
import pandas as pd
from sklearn.model_selection import train_test_split

1. 데이터 로드
df = pd.read_json('dataset.jsonl', lines=True)

2. 중복 제거
df = df.drop_duplicates(subset=['instruction', 'output'])

3. 셔플
df = df.sample(frac=1, random_state=42).reset_index(drop=True)

4. 분할 (70:15:15)
train_val, test = train_test_split(df, test_size=0.15, random_state=42)
train, val = train_test_split(train_val, test_size=0.176, random_state=42)

5. 저장
train.to_json('train.jsonl', orient='records', lines=True)
val.to_json('val.jsonl', orient='records', lines=True)
test.to_json('test.jsonl', orient='records', lines=True)

print(f"Train: {len(train)}, Val: {len(val)}, Test: {len(test)}")
```

---

📋 체크리스트

분할 전
[ ] 중복 데이터 제거
[ ] 데이터 품질 검증
[ ] 랜덤 시드 설정

분할 중
[ ] 적절한 비율 선택
[ ] 계층적 분할 필요 여부 확인
[ ] 시계열 순서 고려

분할 후
[ ] 각 셋 크기 확인
[ ] 클래스 분포 확인
[ ] Test 셋 별도 저장 및 봉인

---

⚠️ 흔한 실수

*1. Test 셋을 여러 번 사용*
Test는 최종 1회만!

*2. Validation 없이 Train/Test만 분할*
하이퍼파라미터 튜닝 불가

*3. 셔플 없이 순차 분할*
편향된 분포 발생

*4. 시계열 데이터를 랜덤 분할*
미래 정보 누출

*5. 분할 후 전처리*
Test에 Train 정보 누출 위험

---

💡 실전 팁

**Tip 1**: 분할 전 EDA (탐색적 데이터 분석)
분포 확인 후 전략 결정

**Tip 2**: 시드 고정으로 재현성 확보
random_state=42 습관화

**Tip 3**: Test 셋은 금고에 보관
학습 중 절대 열어보지 말기

**Tip 4**: 검증 결과 기록
어떤 분할이 최적인지 문서화

---

🛠️ 추천 도구

*분할 라이브러리*
scikit-learn (train_test_split)
datasets (Hugging Face)

*검증*
pandas (분포 확인)
matplotlib (시각화)

---

📌 이전/다음 강의

⬅️ 이전: Lesson 5 - 데이터 포맷팅
➡️ 다음: Week 2 Lesson 1 - LoRA/QLoRA 이론

---

💬 댓글로 참여하세요!

📌 여러분은 몇 대 몇으로 분할하시나요?
📌 데이터 리케이지 경험 있으신가요?
📌 질문 환영합니다!

---

🔔 구독하고 함께 성장해요!

👍 좋아요 - 도움되셨다면
🔔 알림 설정 - Week 2 놓치지 마세요
💬 댓글 - 분할 전략 공유해주세요
📤 공유 - 함께 배울 동료에게

---

*#데이터분할 #TrainTestSplit #파인튜닝 #과적합방지 #데이터리케이지 #교차검증 #머신러닝 #AI교육 #LLM*

---

📧 **문의**: [email protected]
💻 **GitHub**: [추후 공지 예정]
🌐 **웹사이트**: https://hermes.deepnexusone.com/silver
📂 **PDF다운**: https://hermes.deepnexusone.com/resou...

© 2025 DeepNexusOne. All rights reserved.

Не удается загрузить Youtube-плеер. Проверьте блокировку Youtube в вашей сети.
Повторяем попытку...
🎯 효과적인 데이터 분할 방법 | Train/Validation/Test 완벽 가이드 – Week 1. Lesson 6.

Поделиться в:

Доступные форматы для скачивания:

Скачать видео

  • Информация по загрузке:

Скачать аудио

Похожие видео

© 2025 ycliper. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]