ML mini-PJT 24: 범죄 체포 건수 유형별 분석

최원빈·2023년 9월 13일
0

ML mini projects

목록 보기
19/21
post-thumbnail

해당 포스트는 패스트 캠퍼스에 초격차 패키지 : 50개 프로젝트로 완벽하게 끝내는 머신러닝 SIGNATURE를 공부한 뒤 복습을 위해 각색하여 작성하였습니다.

01. 시작하며

이번 미니 프로젝트도 이전 23번째 미니 프로젝트 실습과 마찬가지로 모델링 예측문제가 아닌 데이터 분석을 통한 리포팅에 집중했습니다. 다른 점이 있다면 이번엔 대시보드 개발 실습도 해보았습니다.

이번 미니 프로젝트는 데이터 가공 및 알고리즘을 활용한 모델링의 분석기법보다는 주어진 데이터를 시각화 및 분석하는 것에 집중했기 때문에, 리포팅의 전체적인 흐름에 관해 다루어보도록 하겠습니다.

02. 미니 프로젝트 진행과정

먼저 전체적인 프로젝트 진행과정을 다시 환기해보겠습니다. 알고리즘을 활용한 모델링을 했던 프로젝트들과 마찬가지로 분석 진행과정은 크게 4가지로 분류됩니다.

먼저 분석에서 어떻게 보면 가장 중요한 문제해결 프로세스 정의를 한뒤, 주어진 데이터를 활용가능한지 확인하고 모델링에 활용될 수 있도록 가공하는 데이터 확인 & 가공 단계, 그리고 정제된 데이터를 활용하는 모델링 과정, 마지막으로는 모델링 과정에서 나온 결과를 평가하는 단계를 이번 미니 프로젝트에서도 동일하게 거쳤습니다.

다른 점이 있었다면 이전 23번째 미니 프로젝트와 동일하게 Feature Engineering 단계에서 인사이트 발굴을 위한 지표를 설정했습니다. 그리고 모델링 과정은 여러 알고리즘을 활용한 결과를 통한 알고리즘 선택과정이 아닌 인사이트를 추출을 위한대시보드 기획 및 데이터 추출 단계를 거쳤습니다. 마지막으로 평가 단계에서는 선택된 알고리즘에서 나온 결과를 SHAP 등의 라이브러리를 통해 설명력을 가지도록 만드는 것이 아닌 리포팅을 진행했습니다.

어떻게 보면 해당 과정들은 분류 혹은 회귀 문제를 해결보다는 코드적으로는 더 쉬웠지만, 지표를 설정하는 것은 처음이었기에 (이전 23번째 미니 프로젝트에서도 해보긴했지만) 익숙해지려는 노력이 필요했습니다. 그렇다면 이번엔 어떤 문제를 해결하고자 했는지 먼저 간략하게 정리해보겠습니다.

이번 프로젝트에서 해결하고자 하는 문제는 22년 전체 범죄 발생률(%)의 전년 대비 증가입니다. 범죄 발생률 증가로 인한 2차 피해 또한 발생할 수 있어 A경찰서는 23년에 범죄 발생률 증가를 예방하기 위해 데이터 분석이 필요합니다. (시나리오)

문제를 해결하여 얻을 수 있는 기대효과는 발생률이 높은 범죄에 대한 추가적인 관리 방안 수립을 통해 범죄 발생률 감소입니다. 이는 범죄로 인한 2차 피해까지 감소할 수 있도록 도와줄 것입니다.

해결방안은 데이터 분석 및 대시보드 개발을 통해 22년 범죄 발생 case 분석을 통해 23년 범죄 대응 전략을 수립하는 것입니다. 이는 경찰서에서 수립된 전략을 통해 인원을 배분하는 등의 행동을 하는데 도움을 줄 것입니다.

어떤 문제를 해결해야하는지 알아보았으니 다음으로 이전 프로젝트들과 달랐던 Feature Engineering 과정은 어떻게 진행했는지 소개해드리겠습니다.

03. Feature Engineering - 지표 설정

먼저 데이터는 아래와 같이 구성되어 있습니다.

  • 성별
    • Male (첫번째 컬럼)
    • Female (두번째 컬럼)
  • 연령그룹
    • Adult (세번째 컬럼)
    • Juvenile - 청소년 (네번째 컬럼)
  • 상세연령
    • 11-15 (이하 생략)
    • 16-20
    • 21-25
    • ...
    • 61-65
  • 인종
    • Black.or.AfricanAmerican
    • white
    • AmericanIndian.or.AlskaNative
    • Asian
    • ...

위의 데이터 컬럼들을 보면 짐작해볼 수 있듯이 이미 어느정도 집계가 된 데이터입니다.

즉, raw 데이터가 아닌 누군가의 분석적 목표와 방향성의 따라 데이터가 이미 집계되었습니다. 때문에 다른 사람이 주어진 데이터를 활용하여 자유로운 분석을 하는데는 한계가 있습니다. 예를 들면, 위의 이미지를 보면 데이터 프레임 예시가 있는데, 해당 데이터 프레임으로는 남성별 (Male) 26세에서 30세의 (26-30) 범죄 유형 건수를 알기 어렵습니다. 왜냐하면, 이미 해당 데이터들은 따로따로 컬럼화되어있기 때문입니다.

그래서 만약 분석가로서 더 자유로운 분석을 원하다면, 현업가 혹은 데이터를 제공받은 곳에 raw 데이터를 요구해야 할 것입니다. 하지만 지금은 할 수 없으니, 해당 데이터를 통해 활용할 수 있는 지표는 위의 분류처럼 성별, 연령그룹, 상세연령, 인종입니다. 그렇다면 이 4개의 지표를 활용하여 모델링 과정에서는 어떻게 활용했는지 알아보겠습니다.

04. 모델링 - 대시보드 기획 및 데이터 추출

먼저 대시보드 기획에서 기억해야할 것은 목적, 대상, 컨텐츠입니다. Action Item도 중요하지만 Action Item은 대시보드를 활용하는 대상의 의견이 더 중요할 것입니다. 여기서의 목적은 대시보드를 왜 만들었냐인데, 이 부분은 저희가 문제해결 프로세스를 정의한 부분을 넣으면 될 것 같습니다.

대상의 경우는 C-Level, Team Lead, 실무자 등이 있는데 대상에 따라 컨텐츠는 달라집니다. C-Level 혹은 Team Lead에게 대시보드를 전달할 경우 이슈 센싱을 통해 지시를 내릴 수 있고 빠른 의사결정을 도와줄 수 있도록 상세한 내용이 아닌 큼직한 내용의 전달이 필요할 것입니다. 이와 반대로 실무자에게 전달할시에는 drilled down된 상세한 내용을 전달하여 실제 현업에서 사용할 수 있도록 대시보드 개발이 필요할 것입니다.

여기서 대시보드에 활용하기 위해 추출한 데이터는 범죄 유형별 성별분석, 연령그룹, 상세연령, 인종입니다. 그렇다면 추출한 데이터를 활용하여 대시보드를 만든 예시를 평가 단계에서 보여드리겠습니다.

05. 평가 - 리포팅

matplotlib으로 만들었기 때문에 굉장히 로우레벨의 대시보드가 완성되었습니다..! 이번 실습에서는 리포팅의 전체적인 과정을 경험해보는 것에 목적이 있었기 때문에 대시보드 개발은 간단히 진행했습니다. 하지만 이러한 대시보드 개발은 제가 국비지원 데이터 분석 과정에서 사용했던 Streamlit을 활용하여 더 이쁘고(?) 이해하기 쉽게 대시보드 개발이 가능할 것입니다. 혹은 Plotly Dash를 통한 개발도 가능할 것입니다.

06. 마무리하며

이번 미니 프로젝트에서는 데이터 분석가에게 요구되는 역량 중 하나인 인사이트 추출을 위한 데이터 분석을 통한 리포팅과 대시보드 개발 과정을 진행해보았습니다.

이번 글에서는 더 자세한 분석 및 리포팅 결과를 다루진 않았지만, 프로젝트 목적에 따라 더 다양하고 깊은 분석이 가능할 것입니다. 다음 미니 프로젝트에서도 동일하게 인사이트 추출을 위한 데이터 분석을 하게 될텐데, 실제 현업에서도 활용할 수 있도록 몸에 익숙해지도록 연습해야겠습니다!


부족하지만 읽어주셔서 감사합니다:) 피드백은 언제나 환영입니다:)

profile
차가운 머리와 따뜻한 마음

0개의 댓글

관련 채용 정보