EDA에 자주 사용되는 주요 시각화 그래프

Jeonghwan Kim·2022년 11월 12일
0

데이터 종류

  • 수치형 데이터: 사칙 연산이 가능한 데이터

    • 연속형: 값이 연속인 데이터, ex) 키, 몸무게, 수입
    • 이산형: 정수로 딱 떨어져 셀 수 있는 데이터, ex) 과일 개수, 책의 페이지 수
  • 범주형 데이터: 범주로 나누어지는 데이터

    • 순서형: 순위를 매길 수 있는 데이터, ex) 학점, 랭킹
    • 명목형: 순위가 따로 없는 데이터, ex) 성별, 음식종류, 우편번호

수치형 데이터 시각화

히스토그램 - histplot()

  • 수치형 데이터의 구간별 빈도수를 나타내는 그래프

    • histplot()의 data 파라미터에 전체 데이터셋을 DataFrame 형식으로 전달하고, x파라미터에 분포를 파악하려는 피처를 전달함

    • 구간 개수를 지정하는 bins 파라미터 값 설정

    • 빈도를 특정 범주별로도 구분해서 보고 싶을 때 hue 파라미터에 해당 범주형 데이터를 전달함

    • 그래프를 포개지 않고 누적해 표현하려면 multiple='stack' 을 전달함

커널밀도추정함수 그래프 - kdeplot()

  • 히스토그램을 매끄럽게 곡선으로 연결한 그래프

  • 히스토그램은 이산적이지만, 커널밀도추정함수는 연속적임

분포도 - displot()

  • 수치형 데이터 하나의 분포를 나타내는 그래프

  • 파라미터만 조정하면 hisplot과 kdeplot이 제공하는 기본 그래프를 모두 그릴 수 있기에 자주 사용함

    • 파라미터를 기본값으로 두면 히스토그램을 그림

    • kind 파라미터에 kde를 전달하여 커널밀도추정함수 그래프를 그림

    • kde=True를 전달해 히스토그램과 커널밀도추정 함수 그래프를 동시에 그림

러그플롯 - rugplot()

  • 주변 분포를 나타내는 그래프

  • 주로 다른 분포도 그래프와 함께 사용됨

  • 단일 피쳐가 어떻게 분포되어 있는지 x축 위에 작은 선분(rug)으로 표시함, 값이 밀집될수록 작은 선불들도 밀집됨


범주형 데이터 시각화

막대그래프 - barplot()

  • 범주형 데이터 값에 따라 수치형 데이터 값이 어떻게 달라지는지 파악할 때 사용

  • 범주형 데이터에 따른 수치형 데이터의 평균과 신뢰구간을 그려줌

  • 수치형 데이터 평균은 막대 높이로, 신뢰 구간은 오차 막대로 표현함

  • 원본 데이터를 복원 샘플링하여 얻은 표본을 활용해 평균과 신뢰구간을 구함

  • x 파라미터에 범주형 데이터, y 파라미터에 수치형 데이터 전달, data 파라미터에는 전체 데이터셋 전달

포인트플롯 - pointplot()

  • 막대그래프와 같으나 점과 선으로 나타낸 것

  • 한 화면에 여러 그래프를 그릴 때 유용함

박스플롯 - boxplot()

  • 막대그래프나 포인트플롯보다 더 많은 정보(5가지 요약 수치) 제공

  • 5가지 요약 수치 - 최솟값, Q1, Q2, Q3, 최댓값

  • x, y 파라미터에 각각 범주형 데이터와 수치형 데이터 전달

바이올린플롯 - violinplot()

  • 박스플롯과 커널밀도추정함수 그래프를 합쳐 놓은 것

  • 박스플롯이 제공하는 정보를 포함하며 모양은 커널밀도 추정함수인 것

    • 성별에 따른 등글별 나이 분포를 알아보려면 hue=’sex’ 를 전달함

    • split=True를 전달하면 hue에 전달한 피처를 반으로 나누어 보여줌

카운트플롯 - countplot()

  • 범주형 데이터의 개수를 확인할 때 사용하는 그래프

  • 범주형 피처나 범주형 타깃값의 분포가 어떤지 파악하는 용도로 사용

    • x파라미터를 y로 바꾸면 그래프 방향이 바뀜 (범주형 데이터 개수가 많을 때 그래프가 옆으로 너무 넓어져 보기 힘들 때 유용)

파이 그래프 - pie()

  • 범주형 데이터별 비율을 알아볼 때 사용하기 좋음
  • x 파라미터에는 비율을, labels 파라미터에는 범주형 데이터 레이블 명 전달
  • autopect 파라미터를 통해 비율을 숫자로 나타낼 수 있음

데이터 관계 시각화

히트맵 - heatmap()

  • 데이터간 관계를 색상으로 표현한 그래프
  • 비교해야 할 데이터가 많을 때 사용
  • 히트맵을 그리려면 판다스의 pivot()함수로 데이터 구조를 바꿔야 함
  • index와 columns 파라미터에 전달한 피처를 각각 행과 열로 지정하고, values 파라미터에 전달한 피처를 합한 표를 반환함

라인플롯 - lineplot()

  • 두 수치형 데이터 사이의 관계를 나타낼 때 사용함
  • x 파라미터에 전달한 값에 따라 y 파라미터에 전달한 값의 평균과 95% 신뢰구간을 나타냄

산점도 - scatterplot()

  • 두 데이터의 관계를 점으로 표현하는 그래프
    • hue 파라미터를 이용하면 특정 범주형 데이터별로 나누어 그릴 수 있음

회귀선을 포함한 산점도 그래프 - regplot()

  • 산점도와 선형 회귀선을 동시에 그려주는 함수
  • 회귀선을 그리기에 상관관계 파악이 용이
    • 신뢰구간의 디폴트값은 95%이고, 99%로 늘리려면 ci 파라미터에 99 전달 (음영 부분이 넓어짐)

참고: 머신러닝·딥러닝 문제해결 전략 (캐글 수상작 리팩터링으로 배우는 문제해결 프로세스와 전략)

0개의 댓글