250x250
Link
λ‚˜μ˜ GitHub Contribution κ·Έλž˜ν”„
Loading data ...
Notice
Recent Posts
Recent Comments
관리 메뉴

Data Science LAB

[Python] OverSampling/UnderSampling λ³Έλ¬Έ

πŸ›  Machine Learning/데이터 μ „μ²˜λ¦¬

[Python] OverSampling/UnderSampling

γ…… γ…œ γ…” γ…‡ 2022. 3. 14. 19:07
728x90

λ ˆμ΄λΈ”μ˜ 뢄포가 λΆˆκ· ν˜•ν•œ 데이터셋을 ν•™μŠ΅μ‹œν‚¬ λ•Œ 예츑 μ„±λŠ₯에 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλŠ”λ°, μ΄λŠ” μ΄μƒμΉ˜ λ ˆμ΄λΈ”μ΄ 정상 λ ˆμ΄λΈ”μ˜ 데이터 κ±΄μˆ˜μ— λΉ„ν•΄ λ„ˆλ¬΄ 적기 λ•Œλ¬Έμ— λ°œμƒν•˜λŠ” ν˜„μƒμ΄λ‹€. 즉, 이상 λ ˆμ΄λΈ”μ˜ λ°μ΄ν„°λŠ” 맀우 적기 λ•Œλ¬Έμ— λ‹€μ–‘ν•œ μœ ν˜•μ„ ν•™μŠ΅ν•˜μ§€ λͺ»ν•˜λŠ” 반면 정상 λ ˆμ΄λΈ”μ˜ 데이터 κ±΄μˆ˜λŠ” 맀우 λ§Žμ•„ 일방적으둜 정상 λ ˆμ΄λΈ”μ— 치우친 ν•™μŠ΅μ„ μˆ˜ν–‰ν•΄ μ œλŒ€λ‘œλœ 이상 데이터 κ²€μΆœμ΄ μ–΄λ €μ›Œμ§„λ‹€. μ΄λŸ¬ν•œ λ¬Έμ œμ μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œ μ˜€λ²„μƒ˜ν”Œλ§/μ–Έλ”μƒ˜ν”Œλ§μ˜ 방법이 μžˆλ‹€. 

좜처 : https://www.kaggle.com/code/rafjaa/resampling-strategies-for-imbalanced-datasets/notebook

 

 

OverSampling

μ΄μƒμΉ˜ λ ˆμ΄λΈ”κ³Ό 같이 적은 데이터 셋을 μ¦μ‹ν•˜μ—¬ ν•™μŠ΅μ— ν•„μš”ν•œ 데이터λ₯Ό ν™•λ³΄ν•˜λŠ” 방법이닀. λ™μΌν•œ 데이터λ₯Ό λ‹¨μˆœνžˆ μ¦μ‹μ‹œν‚€λ©΄ 과적합이 되기 λ•Œλ¬Έμ—, 원본 λ°μ΄ν„°μ˜ ν”Όμ²˜ 값듀을 μ‘°κΈˆμ”© λ³€κ²½ν•˜μ—¬ μ¦μ‹ν•œλ‹€. λŒ€ν‘œμ μΈ μ˜€λ²„μƒ˜ν”Œλ§ λ°©λ²•μ—λŠ” SMOTEκ°€ μžˆλ‹€. 

 

  • SMOTE : 적은 데이터셋에 μžˆλŠ” κ°œλ³„ λ°μ΄ν„°μ˜ KNN(μ΅œκ·Όμ ‘ 이웃)을 μ°Ύμ•„μ„œ 이 데이터와 K개 μ΄μ›ƒλ“€μ˜ 차이λ₯Ό 일정 κ°’μœΌλ‘œ λ§Œλ“€μ–΄ κΈ°μ‘΄ 데이터와 μ•½κ°„ 차이가 λ‚˜λŠ” μƒˆλ‘œμš΄ 데이터듀을 μƒμ„±ν•˜λŠ” 방식
#νŒ¨ν‚€μ§€ μ„€μΉ˜
conda install -c conda-forge imbalanced-learn
from imlearn.over_sampling import SMOTE

smote = SMOTE()
X_train_over, y_train_over = smote.fit_sample(X_train,y_train)

 

πŸ“μ£Όμ˜ : 검증 λ°μ΄ν„°λ‚˜ ν…ŒμŠ€νŠΈ λ°μ΄ν„°μ…‹μ—λŠ” μ μš©ν•˜λ©΄ μ•ˆλ¨

 

 

UnderSampling

λ§Žμ€ 데이터 셋을 적은 데이터셋 μˆ˜μ€€μœΌλ‘œ κ°μ†Œμ‹œν‚€λŠ” 방식이닀. 정상 λ ˆμ΄λΈ” 데이터λ₯Ό 이상 λ ˆμ΄λΈ” 데이터 μˆ˜μ€€μœΌλ‘œ κ°μ†Œμ‹œν‚€λ©΄ κ³Όλ„ν•˜κ²Œ 정상 λ ˆμ΄λΈ”λ‘œ ν•™μŠ΅ν•˜λŠ” λ¬Έμ œλŠ” ν•΄κ²°ν•  수 μžˆμ§€λ§Œ, λ„ˆλ¬΄ λ§Žμ€ 정상 λ ˆμ΄λΈ” 데이터λ₯Ό κ°μ†Œμ‹œν‚€κΈ° λ•Œλ¬Έμ— 정상 λ ˆμ΄λΈ”μ˜ 경우 였히렀 μ œλŒ€λ‘œλœ ν•™μŠ΅μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€. μ΄λŸ¬ν•œ 단점 λ•Œλ¬Έμ— 언더 μƒ˜ν”Œλ§ 기법을 잘 μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€. 

728x90
Comments