C.W.K.
Stream
Lesson 07 of 08 · published

Splitting, Combining, Concatenating

~20 min · datasets, split

Level 0스카우트
0 XP0/50 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

train_test_split, stratify, seed

ds.train_test_split(test_size=0.1, seed=42, stratify_by_column="label")train + test split DatasetDict 돌려줌. stratification 이 클래스 균형 보존 — 균등 분포 아닌 데이터셋의 분류 eval 에 필수.

concatenate_datasets 와 interleave_datasets

concatenate_datasets([a, b, c]) 가 행 stack. interleave_datasets([a, b, c], probabilities=[0.6, 0.3, 0.1]) 가 매 step 소스에서 sample. 후자가 큐레이션 + 크롤 데이터를 타겟 비율로 mixing 하는 정공법.

Code

Stratified split + concatenate·python
from datasets import load_dataset, concatenate_datasets, interleave_datasets

a = load_dataset("stanfordnlp/imdb", split="train")
print(a.features["label"])  # ClassLabel

splits = a.train_test_split(test_size=0.1, seed=42, stratify_by_column="label")
print({k: len(v) for k, v in splits.items()})

# Concat (stacked rows)
combined = concatenate_datasets([splits["train"], splits["test"]])
print(len(combined), len(a))

# Interleave (학습 중 확률적 mix)
b = load_dataset("stanfordnlp/imdb", split="test")
mixed = interleave_datasets([a, b], probabilities=[0.7, 0.3], seed=42, stopping_strategy="first_exhausted")
print(type(mixed), len(mixed))

External links

Exercise

분류 데이터셋 아무거나. seed=42 로 stratified 80/10/10 train/dev/test split 돌려. 셋 다 클래스 균형 보존 검증. 같은 seed 로 non-stratified split 돌려 클래스 균형 비교 — 작은 데이터셋엔 보통 눈에 띄게 나쁨.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.