본문 바로가기

Brightics 서포터즈 3기

[삼성 SDS brightics] 개인 분석 프로젝트 1. 회귀분석을 통한 전화사기에 미치는 영향요인 분석하기

안녕하세요 brightics 서포터즈 3기 문수빈입니다!

이번 포스팅을 시작으로 개인 분석 프로젝트가 시작됩니다~!

주제를 선정하는데 꽤 오랜 시간이 걸렸는데요 그 이유는 주제에 따라서 분석 프로젝트의 방향성이 크게 달라지기 때문입니다. 저는 데이터 분석에 있어서 핵심은 주제 선정이라고 생각합니다.

생각했던 다양한 주제(feat. 몇 번의 포기에 거쳐..)

  1. 스팸문자 데이터를 텍스트 분석해 보기 -> 제가 아직 brightics로 텍스트 분석한 적이 없어서 이 주제로 하려다가 제가 찾아본 데이터가 스팸문자 데이터로만 이루어져 있고 스팸문자가 아닌 문자는 데이터에 없기에 스팸문자임을 분류해 주는 모델을 생성할 수 없겠구나 싶어서 포기했습니다.
  2. 유동인구 데이터로 어디로 가장 많이 이동을 할지 파악하기 -> 데이터를 다운로드한 후 로드는 쉽게 되지만 이 데이터도 마찬가지로 데이터를 정리하고 시각화하는 수준밖에 안되겠구나 싶어서 포기했습니다.
  3. 전동 킥보드 사고 지점 예측 모델 만들기 -> 이 데이터는 지난번에 개인 분석 프로젝트 때도 하려고 했던 주제인데 현실적인 데이터 확보가 어려워서 포기했습니다.
  4. 장애인 콜택시 수요 예측 -> 데이터를 확보하려면 신청해서 API를 메일로 받아야 하는데 미리 데이터를 확보하지 못했기 때문에 포기했습니다.
  5. 전화사기 건수 예측 -> 데이터 확보를 했고 추후에 예측을 위한 피처를 넣기 위해 데이터를 추가할 수 있기에 이 주제로 선정하였습니다.

주제 선정 기준

제가 주제를 선정한 기준은 첫 번째로 사람들이 관심 가질 만한 주제인가를 제일 먼저 고려해서 선정했습니다. 두 번째로 우리 일상생활과 얼마나 밀접한 관련이 있는가를 고려했습니다.

세 번째로 이전에 다뤄보지 못했던 데이터를 가지고 분석을 하는가를 고려했습니다. 지난 개인 분석 프로젝트에서는 캐글에서 제공하는 깔끔하게 정리된 데이터를 이용해서 분석을 진행했는데요 이번에는 빅데이터 플랫폼에서 제공하는 데이터 + 통계청과 공공데이터 포털 등에서 데이터를 추가로 확보할 예정입니다!

제가 정한 주제는 전화사기에 미치는 영향요인 분석입니다!

데이터 분석 계획

분석 과제를 도출하기 위한 방법에는 크게 2가지가 있습니다. 하나는 상향식 접근 방식 다른 하나는 하향식 접근 방식입니다. 상향식 접근 방식은 데이터 기반으로 문제의 재정의 및 해결 방안을 탐색하는 방식입니다.

하향식 접근 방식은 문제가 먼저 주어지고 이에 대한 해법을 찾아가는 방식입니다.

저는 이 중 상향식 접근 방식으로 접근하고자 합니다.

출처: [1과목] 데이터 분석 계획 - 상향식 vs 하향식 접근 방식 (tistory.com)

주제 선정 이유

‘1인 2역’ 전화 사기극으로 할머니 60여명 피눈물 (donga.com)

[그들의 사기공식]⑨ ‘얼굴 없는 검사’ 김민수 뒤에는 범죄 조직이 있었다 (kbs.co.kr)

제가 앞서 주제 선정 기준에도 언급했지만 이번 분석 프로젝트에 포인트를 맞춘 것은 우리 일상생활과 얼마나 밀접한 관련이 있는가? 입니다. 전화사기는 주로 취약계층을 타깃으로 노려서 이루어지고 있습니다. 취약계층뿐만 아니라 지금으로부터 2년 전 2020년도에 20대 취업 준비생이 전화금융 사기로 약 430만 원의 피해를 당해 자살한 사건이 있었습니다. 전화사기는 재산피해를 입힐 뿐만 아니라 자살까지 이르는 인명피해까지 입히기에 전화사기를 줄이는 방안을 모색하는 것이 중요한 시점입니다.

선행연구

데이터 분석 과정을 설정하기 위해서 선행연구를 찾아봤는데요! 생각보다 전화사기에 관한 주제로 데이터 분석한 논문이 없어서 놀랐습니다.

웹스크래핑과 공간 클러스터링 기술을 활용한 전화금융사기(보이스피싱) 수사기법 연구 - 한국경찰연구 - 한국경찰연구학회 : 논문 - DBpia (hs.ac.kr)

이 논문은 웹스크래핑과 공간 클러스터링 기술을 활용해서 금융사기를 연구한 논문인데요 서론에서 독자들을 충분히 설득시키고 연구를 진행했고 공간 클러스터링에서 군집분석을 했기 때문에 제가 참고하기 좋은 논문이었습니다.

보이스피싱 피해 경험 및 영향요인 분석 - 소비자문제연구 - 한국소비자원 : 논문 - DBpia (hs.ac.kr)

아무래도 이번 분석은 전화사기 즉 보이스피싱에 관한 영향요인을 분석하는 게 주목적이기에 이 선행연구를 참고해서 진행해 보고자 합니다.

데이터 수집

1. 전화사기(행정동 단위) 데이터(2019~2021)

스마트 치안 빅데이터 플랫폼 (bigdata-policing.kr)

2. 연령별 인구 현황 데이터

주민등록 인구통계 행정안전부 (mois.go.kr)

3. + 취약계층 인구수 데이터 (추후 추가할 예정입니다)

엑셀 한글 깨짐 문제 해결

먼저 전화사기(행정동 단위) 데이터를 다운로드하면 한글이 깨진 모습을 볼 수 있습니다. 이 문제를 해결하기 위해서 우선 엑셀에서 새 통합 문서를 만듭니다.

 

데이터 -> 텍스트를 선택한 후 다운로드한 데이터를 선택합니다. 텍스트 마법사 1단계에서는 아무것도 건드리지 않고 다음을 클릭합니다.

2단계에서는 구분 기호를 쉼표로 체크해 준 후 다음을 클릭해 주세요!

여기서도 아무런 설정을 건드리지 않고 마침을 눌러줍니다.

마침내 한글이 깨지지 않고 데이터가 잘 불러와진 것을 확인할 수 있습니다! 또한 위 데이터는 각 열에 대한 이름이 없기 때문에 1번째 줄에 이름을 삽입합니다.

이름은 칼럼 한글명을 영어로 바꿔서 넣어주었습니다!

짜잔 열에 대한 정보 추가 후 모습입니다~!

데이터 분석 flow

데이터 로드(load)

다운로드한 파일을 그대로 로드하려면 에러가 발생할 것입니다. 그 이유는 파일명에 특수문자가 들어가면 안 되기 때문입니다! 따라서 저는 파일명은 call로 바꾸었습니다.

다운로드했을 때 파일명

 

load 함수를 이용해 데이터를 불러옵니다. 로드에 성공했습니다!

profile table(데이터 요약)

profile tablel 함수를 사용해 데이터의 전체적인 분포를 파악해 봅니다. 저희가 주의 깊게 볼 것은 결측치와 이상값입니다!

 

Total Missing(%)를 확인했을 때 0.0%로 위 데이터는 결측치가 없는 데이터입니다! 2020년 전화사기 데이터뿐만 아니라 2019, 2021년도도 profile table로 확인해 봤을 때 결측치가 0.0%로 나오기에 결측치 처리는 생략하도록 하겠습니다!

데이터 합치기 (2019~2021)

Bind Row Column

2019~2021년도 3개의 데이터를 불러오고 행 결합을 진행합니다. 행 결합은 Bind Row Column을 이용합니다!

Bind Row Column을 두 번 사용한 이유는 한번 행 결합할 때 2개의 데이터만 결합할 수 있기 때문에 저희는 3개의 데이터를 결합하는 것이기 때문에 한 번 더 함수를 이용해서 결합했습니다.

데이터 결측값 제거(Delete Missing Number)

결합 이후 왜인지는 모르겠으나 Total Missing이 4.3%로 나타납니다. 이 부분은 제가 멘토님께 여쭤보고 다음 블로그에서 왜 그런지 알려드리도록 하겠습니다!

 

결측치가 가장 많은 2개의 변수를 확인하고 Delete missing number 함수를 사용해서 결측치를 제거해 줍니다. 결측치가 4.3%로 제거해도 큰 문제가 없다고 판단하여 대체보다는 제거를 선택했습니다!

이상값 제거(outlier detection)

profile table로 차트를 확인했을 때 범주형 변수들을 제외하고 모든 변수에서 대부분의 관측치와 떨어진 이상값이 있음을 확인할 수 있습니다.

outlier detection 함수를 이용해 이상값을 찾아내고 제거해 보겠습니다!

데이터를 불러오고 전처리 과정 중 결측값과 이상 값을 제거해 봤는데요 다음 주에 이어서 전처리 해보도록 할게요!

모르는 부분은 댓글로 남겨주세요~!!