Regression of Used Car Prices

MSMoon·2025년 4월 10일

kaggle 학습

목록 보기
2/18
post-thumbnail

1. 대회 설명

  • 목표: 다양한 고객 정보를 바탕으로 특정 타깃 값을 예측하는 머신러닝 모델 개발
  • 문제 유형: 회귀
  • 데이터 배경
    -> 고객의 신상 정보, 대출 관련 특성, 신용 관련 수치 등 다차원적인 피처로 구성
    -> 일부 변수에 결측값 존재
    -> 수치형, 범주형 변수 혼합

2. 성능 평가 방식 이해

  • MSE(Mean Squared Error): 큰 오차에 민감함
  • MAE(Mean Absolute Error): 직관적으로 해석되며 이상치에 강함
  • MAE, MSE에 따른 성능 차이를 통해 평가 지표 선택의 중요성 체감

3. 데이터 전처리

3-1) EDA

  • id 컬럼 제거
  • train과 used_cars 데이터를 수직 병합하여 학습용 데이터 확장
  • 문자형 숫자 처리: milage, price 컬럼에서 쉼표와 문제 제거 후 정수형으로 변환

3-2) Data Cleansing

범주형 컬럼 정제

  • model, engine, transmission, ext_col, int_col 컬럼에서 등장 빈도가 기준(100) 미만인 값들은 "noise"로 치환

3-3) Feature Engineering

연식 기반 파생 변수

  • Vehicle_Age: 현재 연도 - 모델 연도
  • Mileage_per_Year: 주행거리 / 연식
  • milage_with_age: 연식별 평균 주행거리

브랜드 기반 변수

  • Is_Luxury_Brand: 고급 브랜드 여부 (예: Mercedes-Benz, BMW 등 15개 브랜드 지정)

모델 성능 비교 변수 추가

  • LGBM 회귀 모델(MAE, MSE 기준)의 예측값을 각각 저장
    -> LGBM_MAE: MAE 기준 모델의 OOF 예측값
    -> LGBM_MSE_diff: MSE 기준 모델 - MAE 기준 모델의 예측 차이
  • 해당 값들은 최종 학습에 추가 피처로 사용됨

4. 모델링

4-1) 모델

  • LightGMBRegressor: OOF 예측 + 성능 비교
  • AutoGluonTabularPredictor: 최종 앙상블 모델

4-2) 데이터 분할

  • 검증 방식: KFold 교차검증 KFold(n_splits=5, shuffle=True, random_state=1)
  • 타겟: price
  • 분할 목적
    -> 각 Fold의 검증 데이터에 대한 Out-Of-Fold(OOF) 예측값 생성
    -> 테스트셋 예측 시 Fold 별 모델 평균을 사용하여 안정적인 추정

4-3) Tuning

LightGBM

lgb_params = {
    'objective' : 'MAE' 또는 'MSE',
    'n_estimators' : 1000,
    'random_state' : 1,
}
  • Loss function을 MAE/MSE로 각각 설정해 성능 차이 비교
  • EarlyStopping과 log_evaluation 콜백 사용
    → 과적합 방지 + 학습 로그 모니터링

AutoGluon

predictor = TabularPredictor(
    label='price',
    eval_metric='rmse',
    problem_type='regression'
).fit(
    X,
    presets='best_quality',
    time_limit=3600,
    verbosity=2,
    num_gpus=0,
    included_model_types=['GBM', 'CAT']
)
  • eval_metric='rmse' 설정 → RMSE 기준 모델 앙상블 진행
  • 'best_quality' 프리셋 사용 → 성능 우선 전략
  • 학습 시간 제한 1시간

4-4) 최종 성능

  • AutoGluon 예측 결과와 기존 앙상블을 0.55:0.45 비율로 블렌딩
  • submission.csv 결과 파일 생성

5. 정리(Lesson & Learned)

  • AutoGluon은 코드량을 최소화하면서도 고성능 모델을 쉽게 만들 수 있는 도구
  • 평가지표의 설정에 따라 모델 성능과 성격이 크게 달라질 수 있음
  • 도메인 지식을 바탕으로 한 피처 엔지니어링은 예측력 향상뿐 아니라 모델의 해석력도 높여줌
  • 서로 다른 예측 결과를 블렌딩하면 단일 모델보다 더 안정적이고 향상된 결과를 낼 수 있음

Regression of Used Car Prices

0개의 댓글