Neural Network를 이용한 버팔로 시 교통 예측
Source: Dev.to

개요
매년 교통부서는 도로를 직접 조사하여 교통량을 측정하는 데 상당한 자원을 투입합니다. 그러나 많은 도로가 측정되지 않은 채 남아 있습니다. 우리는 설문조사 없이도 버팔로‑나이아가라 지역의 모든 도로가 저, 중, 고 교통량 중 어느 수준인지 예측하는 신경망을 구축했습니다.
기능
도로의 위치, 유형, 방향 및 지역 정보를 입력하면 모델이 즉시 교통량 수준을 75 % 정확도(진행 중)로 분류합니다. 도시 계획자는 이를 활용해 도로 보수 및 신호 개선 작업의 우선순위를 정할 수 있고, 기업은 새로운 매장을 열기 전 거리 수준의 교통량을 평가하는 데 활용할 수 있습니다.
구축 과정
Open Data Buffalo에서 수집한 실제 도로 측정치 28,567개를 이용해 PyTorch로 피드포워드 신경망을 학습했습니다. 주요 단계는 다음과 같습니다.
- 왜곡을 완화하기 위해 AADT를 로그 변환
- 도로명·자치구와 같은 고카디널리티 열을 줄이기 위한 규칙 기반 특성 엔지니어링
- 공간적 교통 패턴을 포착하기 위해 버팔로와의 거리 특성 추가
도전 과제
가장 큰 어려움은 80 개 이상의 고유값을 가진 고카디널리티 범주형 열을 처리하는 것이었습니다. 이를 해결하기 위해 도메인 기반 구간화 방식을 적용했습니다. 도로명을 고속도로, 대로, 거리 등으로 그룹화하고, 자치구를 지리적 영역으로 묶어 잡음을 감소시키고 모델 수렴을 크게 개선했습니다.
성과
4,515개의 파라미터만을 가진 경량 모델로 미보인 테스트 데이터에서 75 % 정확도 임계값을 초과했습니다. 이는 구조화된 표형 데이터에서는 단순하고 잘 설계된 특성이 복잡한 아키텍처보다 더 효과적임을 입증합니다.
배운 점
특성 엔지니어링이 모델 복잡도보다 더 중요합니다. 데이터 정제 및 변환—로그 변환, 지리적 그룹화, 거리 특성 추가—에 시간을 투자한 것이 네트워크 구조를 바꾸는 것보다 정확도 향상에 더 큰 영향을 미쳤습니다.
사용 기술
- Python
- PyTorch
- Scikit‑learn
- Pandas
- NumPy
- Matplotlib
- Seaborn
- Open Data Buffalo