[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
비전공자, 입문자가 빅데이터 분석기사 실기를 빠르게 취득할 수 있도록 안내해드려요! 이론은 가볍게, 실전은 확실하게 복잡한 배경지식 없이도, 기출문제를 중심으로 시험에 꼭 나오는 포인트만 집중 학습합니다.
수강생 6,124명
난이도 입문
수강기한 12개월


📌 Tip) 분류-불균형 데이터 다루는 법: 3가지 실전 팁
타겟 변수가 불균형한 경우, 다음과 같은 기법을 적용하여 모델 성능을 개선할 수 있습니다.
단, 이러한 기법이 항상 성능 향상으로 이어지는 것은 아니므로, 적용 전후의 성능을 반드시 비교해보는 것이 중요합니다.
여기서 ‘불균형’이란 다음과 같은 상황을 말합니다:
이진 분류에서 0과 1의 비율이 90:10처럼 한쪽 클래스가 현저히 적은 경우
다중 클래스 분류에서 A, B, C의 비율이 45:45:10처럼 특정 클래스의 비중이 현저히 낮은 경우
1.stratify 옵션을 활용한 데이터 분할
train 데이터를 train_test_split으로
나눌 때 stratify=target 옵션을 사용하면 클래스비율을 유지한 채 데이터를 분할할 수 있다.
불균형 데이터에서는 특정 클래스의 샘플이 너무 적어 학습이 어려워질 수 있는데, 이를 방지하는 데 유용하다.
target = train.pop('타겟 컬럼')
train_test_split(train,target, test_size=0.2, random_state=0, stratify=target)
2.class_weight='balanced' 옵션을 사용한 랜덤포레스트
랜덤포레스트 모델을 학습할 때 class_weight='balanced'를 설정하면, 각 클래스의 샘플 수에 따라 가
중치를 자동으로 조정하여 불균형 문제를 완화할 수 있다.
RandomForestClassifier(random_state=0, class_weight='balanced')
3.is_unbalance=True 옵션을 활용한 LightGBM
LightGBM에서는 is_unbalance=True를 설정하면 내부적으로 클래스의 분포를 고려하여 학습이 진행
된다. 즉, 적은 샘플을 가진 클래스에 더 높은 가중치를 부여해 모델이 해당 클래스를 무시하지 않도록
한다.
lgb.LGBMClassifier(random_state=0,verbose=-1,is_unbalance=True)
실무에서는 이보다 훨씬 극단적인 불균형 데이터를 다루는 경우가 많습니다.
예를 들어, 사기 거래는 99:1 비율처럼 한쪽 클래스의 비중이 매우 작은 경우도 흔합니다.
이처럼 불균형한 데이터를 그대로 학습에 사용하면, 모델이 소수 클래스에 대한 예측을 제대로 하지 못해 전체 성능이 크게 떨어질 수 있습니다. 다양한 방법이 있지만 그 중에 가장 손쉽게 해볼 수 있는 방법입니다.
화이팅💕
(위 내용은 필수적인 내용은 아닌 심화 내용입니다. )




