데이터 시각화
딥러닝 학습 흐름과 Epoch, Batch, 데이터 분리, 학습 및 추론의 기본 개념을 정리한다.
왜 데이터 시각화를 하는가?
1. 알고리즘 분석 및 디버깅
- 알고리즘의 시간 복잡도 메모리 사용량 변화를 시각화하여 병목 현상을 직관적으로 파악
- 정렬 알고리즘의 스왑(Swap) 횟수를 시각화라여 효율성을 비교 분석
2. 머신러닝 모델 성능 평가
- 모델의 학습 과정(loss 감소), 예측 결과(Confusion matrix)
- 특징 중요도(feature importance) 등을 시각화하여 모델을 평가하고 개선 방향을 설정
3. 데이터 기반 의사결정
- 대용량 로그 데이터나 사용자 행동 데이터를 시각화하여 시스템의 이상 징후를 감지하거나 서비스 개선을 위한 인사이트 획득
4. 효과적인 커뮤니케이션
- 복잡한 데이터 분석 결과나 시스템 아키텍쳐를 동료 개발자나 비전공자에게 명확하고 설득력 있게 전달
Matplotlib
거의 모든 종류의 그래프를 그릴 수 있는 강력하고 유연한 라이브러리
- 저수준(low-level) 제어가 가능
- 그래프의 모든 요소를 원하는 대로 커스터마이징 가능
Matplotlib의 핵심 구조
- Figure(피규어)
- 전체 그림판(캔버스) 의미
- 하나의 Figure 안에 여러 개 그래프 Axes를 저장
- 그림의 크기, 해상도, 배경색등 속성 전반 관리
- Axe(축)
- 실제 데이터가 그려지는 개별 그래프 의미
- x축, y축, 눈금(tick), 레이블(label), 제목(title) 등 그래프의 구성 요소를 포함
- Axes는 복수형이 아니라 축(axis)들이 모여있는 공간이라는 의미의 단수형 객체 이름
자주 사용하는 matplotlib 플롯
plot() | 선 그래프 (시계열 데이터, 함수 표현) scatter() | 산점도 (두 변수 간의 관계) bar()/barh() | 막대 그래프 (범주형 데이터 비교) hist() | 히스토그램 (수치형 데이터의 분포) boxplot() | 박스 플롯 (데이터의 사분위수, 이상치 탐색) imshow() | 이미지 데이터 시각화 (행렬, 픽셀 데이터)
subplots를 이용하여 여러 그래프를 하나의 화면에 배치하고, 스타일 설정을 통해 그래프의 시각적 품질 향상
Seaborn
여러 변수 간의 관계를 한눈에 파악할 수 있는 강력한 다변량 분석 그래프들을 제공
pairplot()
데이터프레임의 모든 숫자형 변수 쌍에 대한 산점도와 각 변수의 분포(히스토그램 또는 커널 밀도 추정)를 한 번에 그려줌 § 데이터 탐색(EDA) 초기에 변수 간 관계를 파악하는 데 매우 유용
- matplotlib 위에서 동작
- matplotli 보다 더 간단하고 아름다운 그래프 생성 가능
- 데이터 분석 용이
Plotly Express — 인터랙티브 시각화
Altair 선언형 시각화 + 시각화 도구 선택 기준
Matplotlib: 커스터마이징 최강
학술 논문·보고서 품질 차트. 모든 요소를 픽셀 수준으로 제어 § 다른 라이브러리의 기반
Seaborn: 통계 시각화 특화
분포·상관·그룹 비교에 최적 § hue 파라미터 하나로 다차원 정보 표현 § Matplotlib보다 코드 짧음
Plotly: 인터랙티브 공유
줌·필터·호버를 HTML 파일 하나로 공유 가능 § 비전공자 발표에서 임팩트 최대
Altair: 선언형 빠른 EDA
데이터 구조를 선언하면 차트가 완성 § 탐색 단계에서 수십 개 차트를 빠르게 만들 때
COMMENTS
GitHub 계정으로 로그인하여 댓글을 남길 수 있습니다. 댓글은 GitHub Discussions에 공개 저장되며, 작성 내용과 GitHub 프로필 정보가 다른 방문자에게 보일 수 있습니다.