Skip to content

YBIGTA/28th-project-safemobility

Repository files navigation

저상버스 혼잡도 예측 서비스

공공 데이터를 활용해 서울시 606번, 420번 저상버스의 정류장별 **탑승 가능 확률(0~1)**을 예측하는 머신러닝 프로젝트입니다.

프로젝트 목표

실시간 저상버스 위치와 과거 혼잡도 데이터를 기반으로, 특정 정류장에서의 탑승 가능 확률을 예측하여 교통약자의 이동 편의를 돕습니다.

기술 스택

  • 언어: Python
  • 데이터 수집: requests, python-dotenv, APScheduler
  • 데이터 분석: pandas, numpy, matplotlib, seaborn, plotly
  • 모델링: XGBoost, scikit-learn, SHAP

데이터 소스

데이터 출처 설명
버스 노선/정류장 정보 공공데이터포털 (서울시 버스 API) 실시간 노선, 정류장, 도착, 위치 정보
승하차 인원 통계 서울시 열린데이터광장 노선별 정류장별 시간대별/일별 승하차 인원
날씨 기상자료개방포털 (ASOS) 시간별 기온, 강수량, 풍속
공휴일 직접 정리 2025.08~2026.01 법정 공휴일

프로젝트 구조

newbie_final/
├── data/
│   ├── raw/                 # 원본 데이터 (.gitignore, holidays/weather만 포함)
│   ├── filtered/            # 606/420번 필터링된 데이터
│   │   ├── hourly_boarding_606_420.csv
│   │   └── daily_boarding_606_420.csv
│   └── processed/           # 정제된 데이터
│       ├── hourly_boarding_clean.csv
│       ├── daily_boarding_clean.csv
│       └── weather_clean.csv
├── notebooks/
│   ├── 2-1_cleaning_review.ipynb  # 정제 결과 확인 노트북
│   └── 2-3_EDA.ipynb              # 탐색적 데이터 분석 노트북
├── clean_data.py            # 데이터 정제 스크립트
├── collect_route_info.py    # 노선 기본 정보 API 조회 스크립트
├── filter_route_data.py     # 전체 데이터에서 606/420번 필터링
├── project_outline.md       # 프로젝트 상세 기획서
├── CLAUDE.md
├── requirements.txt
├── .env                     # API 키 (git 제외)
└── .gitignore

진행 현황

Phase 1: 데이터 수집

단계 작업 상태
1-1 노선 기본 정보 파악 (API) API 키 활성화 대기 중
1-2 API 및 데이터 소스 검증 대기
1-3 과거 데이터 수집 (6개월) 완료
1-4 실시간 데이터 수집 시작 대기

Phase 2: 데이터 정제 및 분석

단계 작업 상태
2-1 결측치/이상치 처리 완료 — hourly 1,321개, daily 428개 capping, 날씨 NaN→0
2-2 혼잡도 지표 정의 및 계산 대기
2-3 EDA (탐색적 데이터 분석) 완료 — 시간대/요일/월별/날씨/정류장별 분석
2-4 피처 엔지니어링 대기

EDA 주요 인사이트

분석 항목 결과
시간대별 패턴 606/420번 모두 8시, 17~18시 출퇴근 피크
요일별 패턴 606번 주말 35% 감소, 420번 주말 24.5% 감소
월별 패턴 9월, 11월 피크. 10월 하락 (추석 연휴 영향)
날씨 영향 비 오면 소폭 감소, 기온 상관 약함 (< 0.12)
혼잡 정류장 TOP 3 606: 경복궁역, 마포구청역, 광화문역 / 420: 강남역, 동대문역사문화공원역, 청량리역

Phase 3: 모델링 (예정)

단계 작업 상태
3-1 XGBoost 모델 학습 대기
3-2 하이퍼파라미터 튜닝 대기
3-3 평가 및 모델 버전 관리 대기

설치 및 실행

pip install -r requirements.txt

.env 파일에 공공데이터포털 API 키를 설정해야 합니다:

SEOUL_BUS_API_KEY=your_api_key_here

About

28기 신입기수 프로젝트 - 교통약자 이동권 보장을 위한 저상버스 실시간 혼잡도 예측 및 매칭 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages