주어진 생물학적 특성(Length, Weight 등)을 바탕으로 게의 나이(Age) 를 예측하는 회귀(Regression) 프로젝트입니다.
EDA를 통해 변수 분포/관계를 분석하고, 피처 엔지니어링과 모델 비교를 통해 MAE를 최소화하는 모델을 선정했습니다.
- Task: Regression (Age prediction)
- Metric: MAE (Mean Absolute Error)
- Best Model: XGBoost
- Best Score (Kaggle): 1.28412 (1st)
- Validation MAE: 1.316
- Team: 개인 프로젝트 (1인)
※ Kaggle test 데이터는 Age(label)가 제공되지 않으며, 제출용으로 사용됩니다.
train.csv- 학습 데이터 (target:
Age) - 15000 rows × 10 columns
- 학습 데이터 (target:
test.csv- 테스트 데이터 (target 없음)
- 10000 rows × 9 columns
id: 고유 식별자 (모델 학습에서는 제외)Sex: 성별 (M / F / I)Length,Diameter,Height: 신체 치수Weight,Shucked Weight,Viscera Weight,Shell Weight: 무게 관련 변수Age: 목표 변수 (train에만 존재)
- 기초통계량/분포 확인 (
describe, KDE/Histogram) - 결측치/이상치 탐색 (IQR, Boxplot)
- 상관관계 및 관계 분석 (Scatter, Heatmap)
- 범주형 변수 분포 확인 (
Sex)
Sex원-핫 인코딩 (OneHotEncoding)- 수치형 변수 스케일링 (StandardScaler)
- 왜도 완화를 위한 변환 적용 (예:
log1p등) - 파생변수 생성
- Shucked_Weight_Ratio = (Shucked Weight / Weight) 기반 파생변수 추가
- 모델 비교: XGBoost / LSTM / CNN / MLP / LightGBM / SVR
- 교차검증/튜닝(GridSearch 등)을 통한 하이퍼파라미터 탐색
- 성능 비교 지표: MAE, R²
- 최종 모델 선정: XGBoost (MAE 최소 + 성능 안정성)
EDA final.ipynb- EDA, 전처리/변환, 인사이트 정리
Modeling.ipynb- 피처 엔지니어링, 모델 학습/비교, 튜닝, 성능 평가
- GitHub Repo: https://github.com/multiful/Crab_Age_Prediction
- Kaggle Competition : https://www.kaggle.com/competitions/2024-4-big-data-analytics-certification-kr/leaderboard
- 피처 엔지니어링과 변환을 반복 실험하며 MAE를 낮추는 과정에서, 전처리 파이프라인 설계와 실험 기록의 중요성을 체감했습니다.
- 단일 성능뿐 아니라, 학습 과정의 안정성/일관성까지 고려해 최종 모델을 선택했습니다.