day20

박광준·2023년 5월 3일
0

EDA - 범죄 데이터를 위한 데이터 정리

-이론-

  • 검거율까지의 데이터는 잘정리 되었으나, 범죄 경중에 따른 발생건수 차이가 크다.
  • 예를들어 살인은 한 자리 수 발생일 때, 절도는 네 자리 수 발생함.

구별 데이터에서 발생건수 정규화 데이터 생성

  • 서로 크기가 다른 데이터들을 비교하기 위해 각각의 최대값으로 나누는 과정
  • max() 활용

데이터프레임[특정컬럼] / 데이터프레임[특정컬럼].max()

정규화 데이터프레임에 범죄 검거율 컬럼 추가

정규화 데이터프레임에 인구수, CCTV수 컬럼 추가

정규화된 범죄 건수의 평균을 구하여 컬럼 추가

  • numpy.mean() 이용
  • axis=1 행의평균을 구함

검거율의 평균을 구하여 컬럼 추가

전체 데이터프레임

-실습-

데이터 정규화

정규화 데이터프레임에 검거율 추가

인구수와 CCTV 수 추가

구별 범죄 건수의 평균을 구함

np.mean()에 대해 알아보자

검거율 평균인 검거 컬럼 추가


EDA - Seaborn

-이론-

Seaborn 이란?

  • Seaborn은 Matplotlib 기반의 고급 데이터 시각화 라이브러리

seaborn import 하기

  • sns 라고 칭한다.

효과

  • seaborn에 관련된 어떤 작업을 하지 않아도 그래프가 더 화려해진다

set_style() 함수

  • white

  • dark

  • whitegrid

despine() 함수

  • 그래프의 상단 및 오른쪽 축 스파인(테두리)을 제거하여 그래프를 더 깔끔하게 만든다.

예제1 - tips

  • seaborn 의 데이터 셋에서 실습용 데이터인 tips 활용

boxplot()

컬럼 지정하여 그래프 작성

hue 옵션

  • 데이터의 하나의 변수를 색상으로 나타내는 방식
  • palette= 색상을 지정할 수 있다.

swarmplot()

  • 데이터 포인트를 겹치지 않게 표현하여 각 범주에 속하는 데이터의 분포와 밀도를 직관적으로 확인할 수 있다.

boxplot과 swarmplot 합치기

lmplot()

  • 두 변수 간의 선형 관계를 시각화하는데 사용

hue 옵션

  • 데이터의 하나의 변수를 색상으로 나타내는 방식

예제2 - flights

  • seaborn 의 데이터 셋에서 실습용 데이터인 tips 활용

pivot

heatmap

  • 데이터의 2차원 배열(행렬)을 컬러 맵을 사용하여 시각화하는 데 사용한다.
  • annot: 각 셀에 값을 표시할지 여부를 결정합니다. 기본값은 False입니다.
  • fmt: 각 셀에 표시할 값의 형식을 지정하는 문자열입니다. annot=True일 때 사용한다.

색상변경

  • cmap: 사용할 컬러 맵의 이름

예제3 - iris

pairplot

  • 데이터프레임의 모든 피처(컬럼) 간의 산점도를 그리는 데 사용한다.

결과

hue 옵션

결과

원하는 컬럼만 지정

예제4 - anscombe

lmplot 을 이용해 그래프 작성

query

  • 문자열 표현식을 사용하여 데이터프레임의 행을 필터링하는 데 사용한다.

scatter_kws 인자

  • 산점도 그래프의 스타일을 사용자 정의
  • s : 산점도 그래프의 점의 크기 조정

order 인자

order=1 -> 1차원 그래프

order=2 -> 2차원 그래프

robust 인자

  • 그래프에서 이상치의 영향을 줄일 수 있다.
  • robust=True로 설정하면, 이상치의 영향을 최소화하기 위해 사분위수 범위(IQR)를 사용하여 데이터 분포를 요약할 수 있다.


robust 사용 후

-실습-

seaborn 설치

그래프

np.linspace()

  • 지정된 구간을 균일하게 나눈 값을 포함하는 배열을 생성
  • 주로 그래프를 그리거나 샘플 포인트를 생성할 때 사용

sns.set_style()

예제 - tips

boxplot

swarmplot

boxplot, swarmplot

implot

예제 - filghts data

pivot

heatmap

예제 - ris data

pairplot

예제 - anscombe data

lmplot


EDA - 서울시 범죄 현황 데이터 시각화

데이터 불러오기

  • 라이브러리 및 모듈
  • 정규화된 데이터프레임 확인

pairplot - 컬럼간에 상관관계 확인

강도 살인 폭력에 대한 상관관계 확인

  • sns.pairplot()
  • kind='reg'

선형회귀데이터로는 큰 관계가 없어보인다.

인구수, CCTV와 살인, 강도의 상관관계 확인

  • sns.pairplot()
  • kind='reg'

선형회귀데이터로는 큰 관계가 없어보인다.

인구수, CCTV와 살인검거율, 폭력검거율의 상관관계 확인

  • sns.pairplot()
  • kind='reg'

이것도 크게 상관이 없어 보인다.

인구수, CCTV와 절도검거율, 강도검거율의 상관관계 확인

  • sns.pairplot()
  • kind='reg'

정렬하여 heatmap 확인

검거 기준으로 검거율 히트 맵 확인

강남구는 검거율이 상위권이다.

범죄 기준으로 5대 범죄 히트 맵 확인

강남구가 최대 범죄 발생지임을 확인할 수 있다.

데이터 저장

  • 정규화된 데이터 최종 저장


EDA - 지도 시각화 - Folium

folium 이란?

  • 지도시각화 도구
  • 지도 시각화 도구는 많지만, Folium의 만족도가 높다.
  • 크롬에서 동작이 가장 좋다.

설치

아나콘다프롬프트

conda install -c conda-forge folium

주피터노트북

save()

  • 지도를 html로 저장 가능하다.

folium.Map()

  • 지도를 불러온다.
  • location : 위도, 경도
  • zoom_start : 표기할 지도 크기 0~18

tiles option

  • tiles 옵션으로 지도 스타일을 바꿀 수 있다.

Stamen Toner

Stamen Terrain

CartoDB dark_matter

CartoDB positron

folium.Marker()

  • 지도 상에 마커를 표기할 수 있다.
  • 옵션 사용 시, html 문법을 사용할 수 있다.
  • popup : 마커 클릭 시 표기
  • tooltip : 마우스 포인터 근처에 가져가기만해도 표기

다양한 모양의 아이콘 지원 - folium.Icon()

  • folium.Marker() 의 icon 옵션에 초기화되어 사용할 수 있다.
  • 마커 내부의 기본으로 주어지는 아이콘 이외에 사용할 수 있다.

  • color : 바탕 색 지정
  • icon_color : 아이콘 색 지정
  • angle : 아이콘 기울기 지정
  • icon : 사용할 아이콘 지정
  • prefix : 아이콘 사용 출처 입력

folium.ClickForMarker()

  • 지도 클릭 시 마커 생성
  • 일반 마커와 똑같이 팝업이 가능하다.

folium.LatLngPopup()

  • 마커에 위도, 경도 정보를 팝업할 수 있다.

folium.Circle(), folium.CircleMarker()

  • 지도에 원 마커를 표기
  • Circle은 지도 배율에 상관없이 원의 반지름 고정, CircleMarker은 지도 배율에 따라 원의반지름 변경
  • 색상 선택시 colour picker 를 이용하면 세부적으로 선택할 수 있다.
  • radius : 원의 크기
  • color : 원의 선 색상
  • fill : True/False - 내부를 색깔칠할지 말지
  • fill_color : 내부 채우기 색상
  • popup : 팝업
  • tooltip : 툴팁

folium.Choropleth

  • 지리학적 영역에 대한 정보를 색상이나 패턴으로 나타내는 지도 유형

제이슨 파일을 쓸 수 있도록 준비 - 02. us-states.json

  • 주의 id가 표기되어 있음
  • id를 기반으로 미국 주의 국경이 그려진 데이터 파일

미국 주별 실업율 파일 불러오기 - 02. US_Unemployment_Oct2012.csv

  • 주의 id가 표기되어 있음
  • id를 기반으로 미국 주의 실업 데이터가 입력된 파일

json, cvs 파일의 서로 같은 id 데이터를 이용하여 매칭시킨 뒤, 주별 실업율을 지도에 색상차이로 표기한다.


0개의 댓글