본문 바로가기

카테고리 없음

[삼성 SDS brightics] 개인 분석 프로젝트 3. 전화사기 건수 단계구분도로 시각화 가능!?(feat.노코드 AI 오픈소스)

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

지난 시간에는 행 결합 이후 결측치가 증가한 문제를 해결하고 이상치를 판단할 때 어떻게 판단하면 좋을지 그리고 지도 시각화를 해봤습니다!

변수의 의미 파악하기

데이터 분석 전 중요한 과정!

범주형 변수가 있다면 수치형 변수로 만드는 더미변수화를 하겠지만 컬럼 정의서에도 나와있듯이 기준년도,시도,시군구,행정동 이외에는 모두 수치형 변수이기에 더미 변수는 분석 과정에서 제외했습니다!

데이터를 분석하기 전 먼저 변수의 의미를 파악하는 게 먼저겠죠 ㅎㅎ 지난번에 결측치와 이상치를 처리할 때만 해도 변수의 의미는 생각하지 않고 했는데 그런 저를 반성하게 되었습니다..

컬럼 정의서에는 not null의 여부와 데이터타입 길이 등이 나와있고 각 변수에 해당하는 의미를 알 수 없어서 사무국님께 연락을 드렸습니다!

Q. 변수에서 인구는 행정동 별 전화사기를 당한 인구수를 의미하는 게 맞는지

→ 맞습니다. 데이터 미리 보기 창에서 샘플 데이터를 확인하면 인구 값이 신고 성별의 총합 값과 동일한 것을 알 수 있습니다. 따라서 해당 연도, 행정동에서 신고를 접수한 인원임을 유추할 수 있습니다.

 

발생 시간대 00~ 발생 시간대 23까지 있는데 예를 들면 발생 시간대 23은 오후 11시에 발생한 건수를 의미하는 것인지 궁금합니다.

→ 발생 시간대가 00~23부터 존재하므로, 하루를 24시간으로 봤을 때

0시 00분 (자정) ~ 0시 59분

...

23시 00분 ~ 23시 59분 (오후 11시 00분 ~ 11시 59분)

으로 나눈 것이라 유추할 수 있습니다. 따라서 발생 시간대 23은 23시 00분 ~ 23시 59분에 발생되었을 경우를 의미한다고 볼 수 있겠습니다.

 

라고 답변을 받았습니다! 여러분들도 칼럼을 이해할 때 이렇게 이해하시면 될 것 같아요!

전국의 전화사기 건 수 시각화 과정

지난 포스팅에서 지도 시각화를 보고 전국에서 어느 지역이 전화사기가 많이 발생하는지 살펴봤는데요 이번에는 지도 시각화를 어떻게 했는지 구체적으로 보여드리고 단계 구분도를 이용해서 지도를 시각화해보겠습니다!

https://neurowhai.tistory.com/m/350

대한민국 행정구역(시도, 시군구) GeoJSON 파일 다운로드 및 SHP 파일 단순화 후 변환 방법 설명

원본 출처이자 해상도가 높은 파일(SHP)은 아래 링크에서 구하실 수 있습니다. http://www.gisdeveloper.co.kr/?p=2332 대한민국 최신 행정구역(SHP) 다운로드 – GIS Developer www.gisdeveloper.co.kr 위 데이터를 그대로 쓰려니 폴리곤이 너무 복잡하여 렉이 걸리더군요. 또 shp파일이라 geojson으로 변환하는 작업도 필요했구요. 이쪽 분야는 잘 몰라 고생을 꽤나 했기에 저처럼 단순화된 행정구역 geojson 파일이 필요하신 분들을 위해 파일들을 공유드립니다. 여기엔 없고 ...

neurowhai.tistory.com

저는 지도를 불러오기 위해 위 사이트에서 전국 시군구별 json 파일을 다운로드했습니다.

json 파일을 다운로드하고 경로:brightics 설치경로\\visual-analytics\lib\map에 파일을 옮겨줍니다.

brightics에서 map 기능을 이용해 지도를 불러옵니다!

map type는 저희가 다운로드한 시도별 json 파일을 넣어줍니다.

latitude와 longitude에 각각 위도와 경도를 넣어주고 color by는 totalarea(지역 이름)

size by는 count(population)을 넣어줍니다.

시각화를 했을 때 중심점이 겹쳐서 어느 곳이 전화 건 수가 많은지 확인하기 어렵습니다. 따라서 아래와 같은 단계 구분 도로 표현해야 전화 건 수가 어디가 적고 많은지를 파악하기 용이합니다.

QGIS란?

시각화하기 전에 지도 데이터가 무엇인지 파악해야겠죠~!? 이번에는 qgis를 이용해서 시각화해보도록 하겠습니다!

QGIS란?

무료, 오픈소스 GIS 소프트웨어로 공간 정보(GIS) 데이터를 시각화하고 편집하고 분석할 수 있습니다. 사용 운영체제는 윈도, Mac OS X, 리눅스 등이 있으며 다양한 플러그인에 의해 기능이 확장되었습니다.

아래의 다운로드 링크를 참고해 주세요~!

QGIS 프로젝트에 오신 것을 환영합니다!

지도 데이터는 여러 포맷이 있지만, 다음과 같이 크게 2가지가 유명하다고 합니다.

1. Shape file (.shp)

2. Geojson (.geojson)

Shape File

Shape File 은 일반적으로 다음과 같이 5개의 파일의 묶음을 말합니다.

.shp : 지리 사상의 기하학 정보를 저장 .shx : .shp 파일의 인덱스를 저장 .dbf : 지라 사상의 속석 정보를 제공하는 dBase 파일 .sbn : 지리 사상 공간의 인덱스를 저장하는 파일 .sbx : join 기능 수행 및 shape 필드에 대한 인덱스 생성에 필요한 파일

웹 상에서, 어떤 .shp 파일 압축파일을 다운받으면 위와 같이 구성되어 있습니다.

이 파일 묶음을 여는 법은, .shp 파일만 열면 나머지 파일이 알아서 로딩됩니다.

최소한 shx파일과 dbf 파일이 있어야 shp 파일을 열 수 있습니다. 위의 5개의 파일은 세트라고 생각하고 서로가 서로에게 없으면 안될 존재라고 생각하시면 되겠습니다!

GeoJson

GeoJson 은 Shape File과 달리 그냥 하나의 파일입니다.

예를 들어 하나의 점을 데이터로 표현하면 다음과 같이 구성되어 있습니다.

{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [125.6, 10.1] }, "properties": { "name": "Dinagat Islands" } }

출처: https://dailyheumsi.tistory.com/m/141

단계 구분도(Choropleth map)

단계구분도(Choropleth map)는 Polygon 단위로 데이터를 지도에 찍습니다.

데이터는 Polygon 단위로 geometry 정보를 갖고 있어야 합니다.

예를 들어, 각 지역구 별로 인구랑, 범죄율 등을 한눈에 파악할 수 있습니다.

단계 구분도 이외에 데이터 시각화의 종류는 아래 블로그에 나와있으니 참고하시면 좋을 것 같습니다!

출처: https://dailyheumsi.tistory.com/m/142

단계 구분도를 그리기 위해 먼저 아래의 시군구별 shp 파일을 다운로드해 줍니다.

http://www.gisdeveloper.co.kr/?p=2332

qgis를 실행 후 add vector layer를 클릭하고 soruce 메뉴에서 shp 파일을 가져오고 add를 클릭합니다.

 

add를 한 이후에 아래와 같이 저희가 다운로드한 지도가 잘 나오는 것을 볼 수 있습니다!

shp의 속성 테이블을 열면 아래와 같이 나오는데 저희 전화사기 데이터와 연결해 주기 위해 시군구 코드가 필요합니다.

위 사이트에서 코드를 다운로드하면 엑셀에서 아래와 같은 행정구역 코드를 보실 수 있습니다!

방금 저희가 봤던 qgis의 속성 테이블에서 저희 지도 파일을 봤을 때 시도 코드 + 시군구 코드로 이루어졌기 때문에 엑셀에서도 함수를 이용해 시도 코드와 시군구 코드를 합쳐줍니다. 이후 합쳐준 코드와 전화사기 데이터를 연결해 줍니다.

가정: 나이가 높을수록 전화사기에 더 취약할 것이다.

저는 연세가 높이신 분들일수록 전화사기에 더 노출되어 있을 것이라 가정했습니다! 따라서 건수를 예측하기 위해 위의 데이터를 추가할 것입니다. 연간과 전체 시군구 현황으로 선택한 후 csv 파일 다운로드를 눌러줍니다.

데이터 전처리 전

csv 파일을 다운로드하고 보면! 짜잔 눈 아프시죠..ㅎㅎ 남녀별 인구수는 분석에 필요 없기에 과감하게 열을 지워줍니다.

또한 brightics에서 불러오기 위해서 행정구역에 띄어쓰기를 없애주어야 하며 컬럼 이름도 _ '언더바'가 들어가면 안 되기에 바꿔줍니다.

데이터 전처리 후

컬럼의 이름과 행정구역의 띄어쓰기를 모두 없애주었습니다!

다음에는 전처리 된 데이터를 합친 이후에 변수와의 상관관계를 파악해 보고 본격적인 모델링을 시작해 보겠습니다.

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

* Brighitcs 서포터즈 활동의 일환으로 작성된 포스팅입니다.

#삼성SDS #삼성SDSBrightics #Brightics #브라이틱스 #Brightics서포터즈 #브라이틱스서포터즈 #BrighticsAI #BrighitcsStudio #AI #데이터분석 #빅데이터 #SamsungSDS #분석초보 #브라이틱스스튜디오 #모델링 #노코드AI오픈소스