분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[Private 3위] Soft Margin, SVM Grid Search
공동작성자
안녕하세요! SVM을 활용하여 최종 제출을 해보았습니다. 간단한 코드이지만, 팀원들과 다양한 방법을 시도해본 후 이 코드로 결정하게 되었습니다.
1. 모델 선정
다양한 모델과 기법을 활용해본 결과, SVM을 모델로 선정하였습니다. SVM은 데이터 불균형 상황에서 class_weight 조정을 통해 소수 클래스도 비교적 안정적으로 예측할 수 있다는 장점이 있다고 판단했습니다. 또한 이번 대회 데이터는 규모가 비교적으로 크지 않았는데, SVM은 적은 데이터에서도 과적합 위험이 적고 안정적인 성능을 보이는 점에서 적합하다고 생각하여 선정하게 되었습니다.
2. Feature Selection
결측률이 높은 변수들을 제거한 뒤, Label Encoding + SimpleImputer + StandardScaler로 전처리를 진행했습니다. 다양한 파생 변수를 만들어 보거나 범주형 변수 분류를 시도해보았지만 유의미한 성능 향상은 얻기 어려웠던 것 같습니다. 그래서, 기본적인 전처리 후 SelectKBest로 주요 변수를 선별하여 학습에 활용했습니다.
3. 클래스 불균형
가장 어려웠던 부분은 클래스 불균형 문제였습니다. 실제 데이터에서 1이 약 70%, 0이 약 30% 비율이다 보니, 모델이 대부분을 1로만 예측하는 현상이 자주 나타났습니다. 이를 해결하기 위해 오버샘플링, 언더샘플링, StratifiedKFold, 앙상블 등 다양한 방법을 실험했지만 성능 차이가 크지 않았습니다. 최종적으로는 class_weight={0:1.62, 1:0.723}를 적용하고, threshold를 0.8로 높여서 예측 쏠림 현상을 완화했습니다.
처음 참여한 대회라 부족한 점도 많았지만, 다양한 시도를 통해 의미 있는 경험을 쌓을 수 있었던 것 같습니다. 앞으로 다른 참가자분들의 코드를 참고하며 더 깊이 있는 공부를 해보고 싶습니다. 고생 많으셨습니다!
DACON Co.,Ltd | CEO Kookjin Kim | 699-81-01021
Mail-order-sales Registration Number: 2021-서울영등포-1704
Business Providing Employment Information Number: J1204020250004
#901, Eunhaeng-ro 3, Yeongdeungpo-gu, Seoul 07237
E-mail dacon@dacon.io |
Tel. 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved