데이터 탐색 - 일변량 시각화 탐색

hisungmi·2024년 8월 18일
0

KT Aivle

목록 보기
16/23
post-thumbnail

일변량 시각화

  • 하나의 변수로 구성된 데이터를 전체적인 관점으로 파악할 수 있는 데이터 탐색 유형

    단일 변수 데이터를 다양한 그래프로 시각화하여 전체적인 관점으로 살펴보는 것이 목적

시각화 특징

시각화비시각화
직관적 이해 추구효과적인 데이터 요약
정보 전달 시간 단축빠른 데이터 성격 파악

범주형 시각화

  1. 파이 차트
  2. 막대그래프

    범주의 수가 많거나 범주 별 크기가 유사하면 비교가 어려운 파이 차트
    범주 별 비교는 막대그래프 기반의 파악이 비교적 수월함

연속형 시각화

  1. 히스토그램
    • 관측된 연속형 데이터 값들의 분포 파악 가능
    • 구간 별 분포 상태를 쉽게 알아볼 수 있는 그래프
    • 구간 내 속하는 자료의 수가 많고 적음을 쉽게 파악
    • 막대그래프와 유사한 형태를 보유
      • 히스토그램은 연속형 변수의 빈도 분포를 표현
      • 막대그래프는 범주형(이산형 포함)변수의 빈도표 비교 표현
  2. 커널 밀도 추정
    • 관측된 연속형 데이터 값들의 분포를 분석하여 연속성 있는 확률 밀도 함수를 추정
    • 관측된 데이터로부터 변수가 가질 수 있는 모든 값의 확률(밀도)을 추정하는 것
    • 히스토그램을 한계점을 극복하기 위해 고안된 방안
      1. 구간 경계가 연속적이지 않음
      2. 구간 크기 및 시작 위치에 따라 분포가 다르게 나타남
      3. 고차원 데이터에 대한 메모리 문제 발생 가능성 존재
  1. 박스플롯
    • 연속형 데이터의 양상을 직관적으로 파악할 수 있는 방안으로 5가지 요약치를 기반으로 생성되며 다양한 정보를 손쉽게 표현
      	5가지 요약치 : 1.중앙값 2.1분위수 3.3분위수 4.최대값 5.최소값
    • 데이터의 개략적인 흩어짐의 형태 파악 및 IQR기반의 이상치 판단에 용이함

#필요한 라이브러리
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

범주형 일변량 시각화

- 파이차트
- 막대그래프
파이차트 실습
#범주형 데이터로 변환

#파이차트 생성을 위한 빈도 table 생성
pie_df_G5 = pd.DataFrame(housing_data['AGE_G5'].vlaue.counts())
#파이차트 생성시 범주 별 크기에 따른 sorting 후 plotting
pie_df_G5

#파이차트 생성
pie_df_G5.plot.pie(y='AGE_65', figsize=(10,10), colors = sns.color_palette('his',len(pie_df_G5)))
pit.show()
막대그래프 실습
#막대그래프 생성
pie_df_G5.plot.bar(y='AGE_65', figsize=(6,6), colors = sns.color_palette('his',len(pie_df_G5)))
plt.show()

연속형 일변량 시각화

- 히스토그램
- 커널밀도추정
- 박스플롯
히스토그램, 커널밀도추정 실습

#히스토그램 시각화
housing_data["RM"].plot.hist()
plt.show()

#구간 세분화
housing_data["RM"].plot.hist(bins = 30)

#커널밀도추정 시각화
sns.kdeplot(housing_data["RM"])
plt.show()

#함께 시각화
sns.histplot(housing_data["RM"], bins=30, kde=True)

#CRIM 변수 시각화
fig, ax = plt.subplots(ncols=2, figsize=(15,5))

sns.histplot(housing_data["CRIM"], bins=20, ax=ax[0])
sns.kdeplot(housing_data["CRIM"], ax=ax[1])

plt.show()
박스플롯 실습

#Box Plot 시각화
housing_data.boxplot(figsize=(20,10))
plt.show()
profile
난 성미다.

0개의 댓글