Bike Prediction Competition[2014]
Kaggle Link: https://www.kaggle.com/competitions/bike-sharing-demand
My Link: https://www.kaggle.com/code/hunbot/study-bike-demand-ref-top-10-visualization/notebook
References
[1] Will Cukierski. Bike Sharing Demand. Kaggle, 2014. https://kaggle.com/competitions/bike-sharing-demand
[2] Kaggle Community. Top 10% Bike Sharing RF + GBM. 2024. https://www.kaggle.com/code/snd072/2025aai-top-10-bike-sharing-rf-gbm
Overview
Top 10%의 성적을 받은 노트북을 참고하여 작성한 자전거 대여 수요 예측 모델을 참고했습니다.
Project Overview: Bike Sharing Demand Analysis
- 초기 데이터 진단 결측치 확인 -> 결측치 없음 -> 데이터 특성 파악 (Season, Time 등 외부 환경 요인 확인)
- 타겟 변수 분석 및 변환 Skewness 확인 (오른쪽으로 치우친 분포 발견) -> 수식을 활용한 log1p 변환 수행 -> 정규 분포화 및 RMSLE 지표 최적화 준비
- 데이터 전처리 datetime 컬럼 분해 (Year, Month, Day, Hour, Dayofweek, WeekofYear) -> 불필요한 변수 제거 및 데이터 타입 최적화 -> 학습용 피처셋 구성
- 첫 번째 성능 평가 Baseline 모델링 (Random Forest) -> RMSLE 0.43 기록 -> 성능 개선을 위한 K-Means Clustering 시도 -> 시각적 분류에는 성공했으나 모델 성능 개선에는 실패 (실패 원인: 트리 모델의 분기 로직과 정보 중복)
- TOP 10% Notebook 참고(사용자 유형별 행동 패턴 분리) -> 타겟 변수 분리 (Casual vs Registered) -> 개별 모델 구축 (RF & GBM)
- 최종 앙상블 및 평가 Weighted Blending (20% Random Forest + 80% Gradient Boosting) -> 예측값 역변환 () -> 최종 RMSLE 0.31 달성 및 잔차 분석(Residual Analysis)을 통한 모델 검증
Important Approaches and Techniques
특수한 날짜 및 공휴일
feature_engineering_check 함수 내부에 있는 피처 엔지니어링 코드가 중요합니다. 데이터셋에 포함된 표준 공휴일 외에, 대여량에 큰 영향을 주었을 실제 사건들을 수동으로 지정했습니다.
- Sandy Storm: 2012-10-30
- Christmas/Year-end: 12-24, 12-26, 12-31
Peak Hours
자전거 대여는 특정 시간대에 집중되는 경향이 있습니다.
- 평일: 출퇴근 시간대 (8시, 12-13시, 17-18시)
- 주말: 낮 시간대 (10-19시)
이를 peak라는 하나의 (0,1) 이진 피처로 통합하여 모델에 반영했습니다.