[ML] 대구 교통사고 위험도 예측 - 회고

윰진·2023년 12월 27일
0

Competetion

목록 보기
6/8
post-thumbnail

🍒 0.001 대에서 당락이 갈린 대구 교통사고 위험도 예측 대회 회고

  • 참여 기간 : 2023.12.01 ~ 2023.12.11
  • 최종 스코어 : 상위 5%

01. 상위 랭크 솔루션

✨ 1, 2위가 모두 Boost 계열 모델을 사용

1 ) Private 1위 국민대 AI 빅데이터 팀

  • 활용한 데이터
    • Train Data (2019 ~ 2021 대구 교통사고 정보 데이터)
    • Country Wide Data (2019 ~ 2021 전국 교통사고 정보 데이터)
    • 보안등, CCTV, 어린이보호구역, 주차장 데이터
    • 공공데이터포털 (2007 ~ 2018 대구 교통사고 정보 데이터)

1 ) 시간 별 주기성

  • 시간 별로 위험도가 달라지고, 새벽과 주말에 위험도가 높음
    {\rightarrow} 주기성을 가지는 년월일 시간 데이터 추가
  • 주기 데이터에 sin/cos 주기성을 만들어 활용
  • 날짜의 경우, 특정 월에서 사고 위험도의 최댓값, 최솟값을 가질 수 있기 때문에 해당 월의 특성을 더 잘 반영해주기 위해 결과값에 음수를 취함

2 ) 공간 별 편차

  • 구나 동 마다 사고 위험도의 편차가 큼
    • 사고위험도 평균 값이 높은 덕곡동노곡동은 각각 산간 지역과 경부고속도로가 위치한 지역

{\rightarrow} 사고 위험도를 기준으로 고속도로 지정

  • Stay님 코멘트: 대구광역시 데이터의 동별 ECLO의 평균이 5보다 큰 경우, 대부분 시외지역에 분포해 있다는 점을 바탕으로 주변에 고속도로가 있는 지 여부를 피처로 활용하기 위해 '고속도로여부'로 피처명을 선정하여 활용함

{\rightarrow} 사상자수를 기준으로 사고다발구역 지정

3 ) CCTV 제한 속도와 사고 위험도

  • 제한 속도가 높을수록 사고 위험도가 높음 (비례)

2 ) Private 2위 BITamin 13기 팀

  • 활용한 데이터
    • Train Data (2019 ~ 2021 대구 교통사고 정보 데이터)
    • Country Wide Data (2019 ~ 2021 전국 교통사고 정보 데이터)
    • 일차별 일출 일몰 시각
    • 전국 노드링크별 평균 택시 통행량
    • 전국 노드링크별 평균 택시 속도

✨ 분석 결과를 정리하는 면에서 배울 점이 많아 보이는 자료

1 ) Target 데이터의 정규성 향상

  • log 변환
  • 이상치 처리
    • 사고 위험도의 비대칭성을 개선하기 위해 상위 0.1% ECLO 값을 이상치로 판단하여 제거

2 ) 전국 데이터 활용

3 ) 외부 데이터 활용

  • 일출, 일몰, 택시 총 통행량, 평균 통행량, 평균 속도

{\rightarrow} 구군별 택시 평균 속도와 평균 사고 위험도는 양의 상관 관계
{\rightarrow} 주행 시야는 주행 속도가 빨라질수록 좁아짐
{\rightarrow} 구별 피해 운전자의 평균 연령 변수로 지역별 운전자의 인구 통계학적 특성 반영
{\rightarrow} 주말, 일출, 일몰 변수 추가

03. 다음에 시도해볼 것

  • Baseline 모델을 하나 정해두고 Feature Engineering 적용해보기
  • 가설 수립과 결과 검증에 초점을 두고 Feature Engineering 진행

04. 더 알아볼 것

🍒 교통사고 위험도 예측 관련해서 찾아보다가 발견한 모델

05. 대회 참여 후기

대회명이 교통사고 위험도 예측인데다, 리더보드를 보니 점수의 간격이 촘촘했다.
Feature Engineering 없이 냅다 돌려서 낸 점수가 꽤 괜찮아서 바로 대회에 참여..!
불행의 시작

주제가 교통사고 이기 때문에 사실 위험 요인이 정해져 있다고 생각했다.

적용해본 가설

  • 어두운 밤 또는 새벽
  • 큰 시장이 있는 곳
  • 교차로이면서 횡단보도의 신호가 짧을 경우
  • 노인 인구 밀집 지역
  • 자전거 통행량이 많은데 자전거 도로는 부족한 경우
  • 결빙구간이나 사고다발 지점
  • 전날 비가 내려 도로가 언 경우
  • 시야 확보가 안되는 곳
  • 과속 단속 카메라 여부
  • 사고가 자주나는 특정 구나 동
  • 시군구 별 가해, 피해 운전자 차종과 연령대
    등등...

적용해볼게 아주 많았기 때문에 점수 차이를 금방 따라 잡을 수 있을거라고 생각했다..!
아주 큰 오산

가장 큰 실수는 Feature Engineering 결과를 포함시켜보고 Score가 저하되면 바로 빼버린 것이다.
다양한 시도를 해봐야하는데, Score가 저하되는 걸 보고 생각의 흐름이 엉뚱하게 굳어져버렸다.

  • 설상가상 모델탓을 하며 방황하기 시작..!
    • 1년 전 멘토님의 말: 모델은 아무 잘못이 없어요.
      • 이걸 의심하지 말았어야 했는데..

더욱이 외부 데이터 활용이 가능했기 때문에 (채널 한정) 빠르게 다른 쪽으로 눈을 돌렸던 것 같다.

어쨌든, 내가 세운 모든 가설이 모델에서 힘을 쓰지 못했고, 그대로 대회가 마무리됐다.

수상 솔루션을 보니 크게 엇나가는건 없었지만 활용 방법에 차이가 있었던 것 같다.
다른 참가자들은 어떻게 접근했는지 배워서 다음엔 더 좋은 결과를 내봐야겠다.

그래도 Target 변수에 log를 취해서 예측 정확도를 높이려고 했던 점이나,
다양한 가설을 생각해보고 적용해보려고 했던 점은 칭찬한다👻

이상ㅎ_ㅎ

0개의 댓글