주제: 시공간 정보로부터 사고위험도(ECLO) 예측 AI 모델 개발
ECLO = 사망자수 * 10 + 중상자수 * 5 + 경상자수 * 3 + 부상자수 * 1
팀명: 무면허 (8조)
팀원: 송상화 / 박유한
- 대구 교통사고 데이터
- 외부 데이터
- Train data는 23개의 열로 구성되었으나 Test data는 8개의 열로 구성됨
- Test data는 추론 시점에서 획득할 수 있는 정보로 구성되어 열의 개수가 Train data보다 적음
- 외부 데이터로 전국 교통사고 데이터, 대구 CCTV 정보, 대구 보안등 정보, 대구 어린이 보호 구역 정보, 대구 주차장 정보가 주어짐
- 추가적으로 geopackage 형식의 대구 빅데이터 마트 데이터가 주어짐
- 사고일시를 년, 월, 일, 시간으로 분리
- 시군구를 도시, 구, 동으로 분리
- 도로형태를 도로형태 1, 도로형태 2로 분리
- 모든 범주형 변수들에 대해 One-Hot Encoding 수행
- '동' 변수에 대해서는 Target Encoding을 수행 - 범주형 변수의 개수를 줄이기 위함
- 도시 변수에는 대구광역시 하나의 값만 있으므로 해당 변수를 제거
- 기상상태와 노면상태의 상관관계가 높아 다중공선성을 없애기 위해 노면상태 변수를 제거
- '사고유형 - 세부분류'와 '법규위반' 변수를 활용
- 해당 두 변수는 예측하고자 하는 ECLO와 상관관계가 높았음
- Test data에는 없는 변수이므로 해당 결측치를, 동별로 가장 많은 '사고유형 - 세부분류' 및 '법규위반'으로 대체
- ECLO >= 11 인 경우를 과감하게 모두 제거
- 90% 이상의 데이터가 ECLO <= 10 에 해당
- 이상치를 제거하지 않고 예측해도 모든 데이터가 3~5 부근으로 예측됨
- CCTV, 보안등, 어린이 보호 구역, 주차장 개수를 동별로 정리
- 외부 데이터에 존재하는 띄어쓰기 오타, 결측 등을 전처리
- '동' 변수를 활용하여 기존 교통사고 데이터와 병합하여 예측에 사용
- geopackage 형식의 데이터는 사용하지 않았음
- Random Forest Regressor 사용
- CCTV, 보안등, 어린이 보호 구역, 주차장 데이터 및 geopackage 데이터는 사용하지 않았음
- RMSLE는 0.4787을 기록
- 직접 모델을 몇 개 선택해서 실험을 진행
- LightGBM, Random Forest, Linear Regression 등을 수행
- 앙상블 학습 또한 수행
- 이후 Pycaret 라이브러리를 이용하여 자동화하고 10여 개 가량의 모델에 대해 RMSLE를 계산
- RMSLE에서 가장 높은 성능을 내는 모델은 Huber Regressor, Ridge Regression, Linear Regression이었음
- Linear Regression을 선택
- 높은 성능을 내는 세 모델 간의 차이가 유의미하지 않다고 판단
- 모델의 단순함과 하이퍼파라미터를 튜닝하지 않아도 되는 간편함을 바탕으로 Linear Regression을 선택
- RMSLE는 0.43067을 기록