본문 바로가기
KT aivleschool

[2주차] 데이터분석 및 시각화

by 수박주스으 2025. 5. 16.

KT 에이블스쿨

* 수업일자 : 2025.03.28 ~ 04.03

 

Matplotlib 라이브러리

- 가장 대중적인 시각화 라이브러리 중 하나.

- 데이터를 시각화하기 위한 다양한 종류 그래프 생성

- 색상, 그리드, 레이블 등 가독성 높은 시각화를 위한 옵션 지원

 

공식 레퍼런스 : 

https://matplotlib.org/stable/api/index

 

API Reference — Matplotlib 3.10.3 documentation

axes: add data, limits, labels etc.

matplotlib.org

 

기본 구조

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

numpy : 고성능 수치 계산과 다차원 배열 처리

pandas : 행/열로 이루어진 데이터를 쉽게 처리

matplotlib : 데이터 시각화를 위한 그래프 지원

 

plt.plot() 기본 선 그래프를 그림.
- x축 값, y축 값 순서대로 지정
- [color][marker][linestyle]
plt.savefig('a') 그래프를 이미지파일로 저장
plt.show() 그래프를 화면에 출력
plt.xlabel(), plt.ylabel() x축, y축 레이블 추가
plt.title() 그래프 제목 지정
plt.grid() 괘선 추가
plt.legend() 범례 추가
plt.xlim(시작값, 끝값)
plt.ylim(시작값, 끝값)
지정된 범위의 그래프
plt.figure(figsize=(가로, 세로)) 그래프 크기 조정
- 기본값 : 6.4 * 4.4
plt.axhline(y값, color, linestyle) 수평선 추가
plt.axvline(x값, color, linestyle) 수직선 추가
plt.text(x좌표, y좌표, '추가할 텍스트') 그래프에 텍스트 추가
- 위치 조정 수작업 필요
plt.subplot(rows, cols, index) 전체 그래프의 행(rows)과 열(cols) 수를 지정하고
인덱스(index)에 따라서 해당 위치에 그래프가 그려짐
plt.tight_layout() 그래프간 간격 적절하게 맞춰줌

 

 

Seaborn 라이브러리

- 파이썬 시각화 라이브러리 중 하나

- Matplotlib 기반으로 작성된 고수준 인터페이스 제공

- Matplotlib보다 훨씬 간편하고 직관적인 API 제공

 

histplot

단일 변수의 분포를 Histogram으로 시각화

- hue 매개변수를 사용하여 구분 기준이 되는 범주형 변수 지정 가능

 

Density Plot : kdeplot()

단일 변수 또는 두 변수의 분포를 Density Plot으로 시각화. 커널밀도함수

- hue 매개변수를 사용하여 구분 기준이 되는 범주형 변수 지정 가능

- common_norm=True : 두 그래프 면적 합=1, False일 경우 각각의 면적=1

 

 

Box Plot : boxplot()

단일 변수나 여러 변수의 분포를 box plot()으로 시각화

- 이상치 탐색

- hue 매개변수를 사용하여 구분 기준이 되는 범주형 변수 지정 가능

데이터셋이 충분하지 않다보니, 흔히들 생각하는 boxplot의 모양이 아닌 점을 양해 부탁한다.

 

Distribution Plot : displot()

단일 변수의 분포 시각화 :Histogram + Density Plot

- hist_kws 매개변수로 시각화 옵션값들 전달

 

 

Count plot : countplot()

범주형 변수의 빈도를 막대 그래프로

- hue 매개변수 : 특정 범주형 변수를 기준으로 추가 구분

- order, hue_order로 순서 지정

바위랑 풀 캐릭터좀...

 

Bar plot : barplot()

범주형 변수

- 데이터 추정 및 오차 막대 표시

- 평균값 계산 + 오차 막대를 그림

- hue 매개변수 : 특정 범주형 변수를 기준으로 추가 구분

 

 

Heatmap : heatmap()

두 범주형 변수를 집계한 결과를 색의 농도 차이로 시각화

- 집계와 피벗을 먼저 만들어줘야 함.

 

 

그 외...

sns.jointplot() : 산점도+히스토그램

sns.pairplot() : 변수 간 산점도 + 변수 분포 일괄 시각화 (시각화하는데 시간 많이 소요)

 

 

데이터분석 프로세스

CRISP-DM

Cross-Industry Standard Process for Data Mining

Business -> Data UnderStanding -> Data Preparation -> Modeling -> Evaluation -> Deployment

 

EDA : Exploratory Data Analysis 탐색적 데이터 분석

- 차트와 기초 통계량을 이용하여 데이터 분포 파악

CDA : Confirmatory Data Analysis 확증적 데이터 분석

- 가설 검증

 

 

단변량 분석

  수치화 시각화
수치형 데이터 기술통계, 사분위수 histogram, density plot, box plot
범주형 데이터 범주별 빈도수, 비율 bar plot, pie chart

 

 

이변량 분석

  수치형 범주형
  시각화 수치화 시각화 수치화
수치형 Scatter plor 상관분석 Box plot, Histogram, Density Plot (로지스틱 회귀)
범주형 Bar Plot T-검정, 분산분석 Bar plot, Mosaic Plot 카이제곱검정

'KT aivleschool' 카테고리의 다른 글

[5주차] LangChain (1)  (0) 2025.05.18
1차 미니프로젝트 : 스마트폰 센서 데이터 기반 모델 분류  (0) 2025.05.18
[2주차] 데이터 처리  (0) 2025.05.11
[1주차] 파이썬 기초  (1) 2025.05.09
[1주차] Git  (0) 2025.05.06