[Project] 치매 노인 사고 방지를 위한 CCTV 최적지 분석
주제
졸업 프로젝트로 진행한 치매 노인 사고 방지를 위한 CCTV 최적지 분석 과제이다. 머신러닝 을 통해 노인 사고 발생이 높은 지역을 학습하고, 해당 지역에 대해 가장 적합한 CCTV 최적지를 찾는 과정으로 진행되었다. 코드, 데이터셋 등에 대한 설명은 링크에 정리하였다.
일정 요약
- 9월 : 주제 선정, 전체 과정 구분, 일정 계획, 역할 분배, 기업 관계자 분들과 미팅
- 10월 : 데이터 수집, Spaitial Analysis, 파생 변수 구성, 추가 데이터 수집, 데이터 전처리
- 11월 : 훈련 데이터 셋 구성, 모델 선정, 모델 학습, 파라미터 튜닝, CCTV 최적지 선정
- 12월 : 모델 성능 개선, 시각화, 결과 정리, 발표 자료 준비
Log
2024. 9
- 2주차
- 팀 구성(2인)
- 주제 선정
- 역할 분배
- 3주차
- 기업 관계자 분들과 Zoom 미팅으로 주제 설명 청취
- 주제의 목적, 필요성, 분석 프로세스
- 데이터 수집 방법 : 공공데이터, VWORLD, 각 지자체 홈페이지 등
- 데이터 분석 방법 : Spatial Analysis, Geopandas, GeoCoding
- 학습 모델과 시각화 : Machine Learning(XGBoost), QGIS
- 기업 관계자 분들과 Zoom 미팅으로 주제 설명 청취
- 4주차
- 세부 일정 계획 작성
- 데이터 수집 → 데이터 분석 및 파생변수 구성 → 훈련 데이터셋 구성 → 모델 학습 → 파라미터 튜닝 → 시각화
- 세부 역할 분배
- PM(나) : 데이터 분석, 모델 훈련, 파라미터 튜닝, 시각화
- 팀원 : 데이터 수집, 데이터 분석, 훈련 데이터셋 구성
- 목적, 필요성 정리
- 대한민국의 고령화 심화 현상 분석
- 데이터 변화(노인 인구 수, 지형, 도로, 건출물)에 유연하게 대처할 수 모델 필요성
- 안전 강화를 통해 사고를 줄이는 솔루션 제시
- 세부 일정 계획 작성
9월은 전체적인 일정과 계획을 수립하고, 주제를 명확히 이해하는 단계였다.
전국을 적당한 크기의 격자로 분할한 후 각 격자별 데이터를 수집 및 분석하기로 결정하였다.
수집한 데이터를 바탕으로 격자 별 노인 사고자 수(GT)를 예측하는 모델을 개발하는 것을 목표로 설정했다.
2024. 10
- 1-2주차
- 데이터 수집
geopandas공부
- 3주차
- 추가 데이터 수집
- 각 데이터에 대한 통계 분석 및 기본 전처리
- 4-5주차
- 데이터 간 상관관계 분석
- 파생변수 구성
- 기본 데이터셋 제작
- 문제점
- 전처리 시간
- 전국을 3km x 3km 격자로 분할하고 시각화 및 데이터 구성을 진행하는 데 시간이 많이 소요됨
geopanasd의intersects연산을 수행 시 약 30시간이 걸림
- 데이터 결측값
- 일부 격자는 데이터가 결측됨. 예를 들어 인구 수 데이터 중 약 30% 결측(NaN)값을 가짐
- 데이터 불균형
- 일부 격자는 인구가 밀집된 지역이고, 일부는 인구가 전무한 산간 지역임
- 전체 격자 중 노인 사고가 발생한 격자 수는 약 1%로 매우 적음
- 전처리 시간
- 해결
- 전처리 시간 개선
- 기업 관계자 분께 자문을 구하였고, 데이터의 범위를 전국 → 전라북도로 축소
- 격자 크기를 3km x 3km → 100m x 100m로 조정
- 결과적으로 전체 데이터 수가 약 83만 행으로 데이터로 축소
- 데이터 결측값 처리
- 인구 수 결측값의 경우, 남녀 인구 수의 비례를 기반으로 보완
- 남녀 모두 결측값인 경우,
평균값또는토지 이용 분류도데이터를 참고하여 대체
- 데이터 불균형 해결
StratifiedKFold를 이용해 모델 학습 시 데이터 불균형 완화
- 전처리 시간 개선
2024 11.
- 1-2주차
- 훈련 데이터 셋 구성
- 각 전처리된 데이터를 기준에 따라 병합
- 추가 데이터를 지속적으로 통합하며 데이터셋 확장
- 훈련 데이터 셋 구성
- 2-3주차
- 모델 선정 및 학습
XGBoost이외에 다양한 모델 성능 평가 및 시각화XGBoost모델에 대해 시각화 결과와 정확도를 기반으로 파라미터 튜닝
- 모델 선정 및 학습
- 4-5주차
- CCTV 최적지 선정
- 분할된 격자에 대해 기존 CCTV 감시 범위를 제외
- 최적의 알고리즘을 찾기 위해 여러 접근법 실험 및 시각화
기존 CCTV 감시 범위를 확인하기 위해 감시각, 용도, 거리 등을 변수로 실험
- CCTV 최적지 선정
- 문제점
- 불균형 데이터
StratifiedKFold사용에도 데이터 불균형 해결이 어려움- 약 83만 개 중 사고 발생 격자는 200여 개로 제한적
- CCTV 감시범위 측정
- 수집한 데이터(위치, 용도, 화소 수 등)만으로 감시 범위를 측정하기에 정확한 판단이 어려움
- 최적지 선정 알고리즘
공공기관이 사유지에 CCTV를 설치할 수 없는 점고려- 해당 위치가 최적의 위치인지 판단할 근거의 부족
- 불균형 데이터
- 해결
- 데이터 확장
- 경상도, 충청도 등 다른 지역 데이터 수집해 훈련 시 활용
- CCTV 데이터 추가 분석
- 성능이 낮거나 건물 내부 CCTV로 판단되는 데이터 제외
- 성능 측정 지표 도입
- 최적지 선정 알고리즘 개선
- 감시 범위가 아닌 지역을 최대 포괄하는 위치를 계산
공공기관은 사유지에 CCTV를 설치할 수 없음부분은 해결 방법을 찾지 못했음. 단순 제외로는 많은 어려움 발생
- 데이터 확장
2024 12.
- 1주차
matplotlib으로 시각화- 실험 결과 및 분석 데이터 정리
- 2주차
- 결과 정리, PPT 제작
- 발표 자료 준비, 보고서 작성
총평
이번 프로젝트는 공간 분석과 데이터 전처리에 대한 지식이 부족한 상태에서 시작했음에도 많은 부분을 배울 수 있는 기회였다.
Geopandas, 시각화, 그리고 데이터 수집 및 전처리 과정에서 얻은 지식은 앞으로 많은 도움이 될 것이다.
다만 시간 부족으로 시각화에 QGIS를 활용하지 못한 점과 데이터 불균형 문제의 완벽한 해결, 효과적인 의사소통에 대한 아쉬움이 남았다.
특히 기업 관계자들의 조언을 더 일찍, 자주 요청하지 않은 점은 개선해야 한다. 조언을 늦게 구한 점이 시간 낭비의 큰 원인 중 하나였다.
References
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.