Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- kt 에이블스쿨 6기
- 파이썬
- KT 에이블스쿨
- 케이티 에이블스쿨 6기 후기
- KT AIVLE
- 에이블 기자단
- 백준 사탕 게임
- 케이티 에이블스쿨 6기 java
- 프로그래머스
- 케이티 에이블스쿨
- 케이티 에이블스쿨 6기
- 머신러닝
- SQLD
- 오블완
- 구현
- kt 에이블스쿨 기자단
- 백준
- kt 에이블스쿨 6기 빅프로젝트
- 알고리즘
- 앙상블
- 티스토리챌린지
- 데이터 프레임
- kt 에이블스쿨 6기 미니 프로젝트
- 네트워크
- 케이티 에이블스쿨 6기 ai
- kt 에이블스쿨 6기 ai
- 판다스
- 케이티 에이블스쿨 기자단
- kt aivle school
- 케이티 에이블스쿨 6기 spring
Archives
- Today
- Total
미식가의 개발 일기
[머신러닝] 클래스 불균형을 해결하기 위한 샘플링(언더 샘플링, 오버 샘플링) 본문
클래스 불균형이란?
특정 클래스의 데이터 수가 다른 클래스에 비해 훨씬 적거나 많은 현상
전체 데이터 중에서 90%가 클래스 A이고 10%만이 클래스 B인 경우, 모델이 단순히 "모든 데이터가 클래스 A"라고 예측해도 정확도가 90%에 달할 수 있습니다. 그러나 이 경우 모델은 클래스 B를 거의 예측하지 못하게 되어 성능 평가 지표로는 부적절합니다.
이처럼 클래스 비율이 극단적으로 다를 경우 소수 클래스의 패턴을 학습하기 어렵고, 잘못된 예측 결과를 초래할 수 있습니다.
이러한 클래스 불균형 문제를 해결하기 위해 샘플링 기법이 존재합니다.
샘플링 기법
데이터의 분포를 조정하여 학습 데이터 세트의 클래스 비율을 맞추는 방법
!pip install imbalanced-learn
※ 라이브러리 설치 필요
언더샘플링 (Undersampling)
다수 클래스의 샘플 수를 줄여 소수 클래스와의 비율을 맞추는 방법
- 장점: 데이터 수가 줄어 학습 속도가 빨라질 수 있음
- 단점: 중요한 정보가 있는 데이터를 제거할 가능성이 있음
from imblearn.under_sampling import RandomUnderSampler
under_sample = RandomUnderSampler()
u_x_train, u_y_train = under_sample.fit_resample(x_train, y_train)
오버샘플링 (Oversampling)
소수 클래스의 샘플 수를 늘려 다수 클래스와 비율을 맞추는 방법
- 장점: 모든 데이터의 정보를 보존하면서 클래스 균형을 맞출 수 있음
- 단점: 데이터가 단순히 반복되면 오버피팅의 위험이 있음
from imblearn.over_sampling import RandomOverSampler
over_sample = RandomOverSampler()
o_x_train, o_y_train = over_sample.fit_resample(x_train, y_train)
SMOTE (Synthetic Minority Over-sampling Technique)
소수 클래스의 샘플들을 이용하여 인접한 샘플들 사이에 새로운 샘플을 합성하여 데이터 수를 늘리는 기법
- 장점: 데이터 분포를 더 다양하게 만들어 단순 오버샘플링보다 일반화 성능을 향상
- 단점: 새로운 데이터를 합성하기 때문에, 소수 클래스의 경계선에서 잘못된 샘플이 생성될 수 있음
from imblearn.over_sampling import SMOTE
smote = SMOTE()
s_x_train, s_y_train = smote.fit_resample(x_train, y_train)
반응형
'ML, DL' 카테고리의 다른 글
MLOps: 머신러닝과 DevOps의 만남 (0) | 2025.04.24 |
---|---|
얼굴 인식을 위한 딥러닝 모델: YOLO vs YOLO-CLS (0) | 2024.11.02 |
[머신러닝] 앙상블 (1) | 2024.08.29 |
[머신러닝] 동일 모델을 반복 학습하는 앙상블(부스팅, 시드 앙상블, KFold 앙상블) (0) | 2024.07.31 |
[머신러닝] 다양한 모델이 결합하는 앙상블(보팅, 스태킹, 평균 앙상블, 가중 평균 앙상블) (0) | 2024.07.28 |