Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Seaborn 라이브러리로 Python에서 커널 밀도 추정(KDE)을 시각화하는 방법

데이터 시각화는 숫자를 일일이 확인하거나 복잡한 계산을 수행하지 않고도 데이터 안에서 어떤 일이 일어나고 있는지 파악하는 데 큰 도움이 되기 때문에 데이터 분석에서 매우 중요한 단계입니다. Seaborn은 데이터 시각화를 돕는 파이썬 라이브러리로, 세련된 맞춤형 테마와 고수준 인터페이스를 제공합니다.

커널 밀도 추정(Kernel Density Estimation, KDE)은 연속 확률 변수의 확률 밀도 함수를 추정하는 방법입니다. 이 기법은 주로 비모수(non-parametric) 값의 분석에 활용되며, 데이터가 특정 분포를 따른다고 가정하지 않고도 부드러운 밀도 곡선을 얻을 수 있다는 장점이 있습니다.

Seaborn에서 distplot 함수를 사용할 때 kde 인자를 True로, hist 인자를 False로 설정하면 히스토그램 없이 커널 밀도 추정 곡선만 깔끔하게 시각화할 수 있습니다.

그럼 Python에서 커널 밀도 추정을 시각화하는 방법을 살펴보겠습니다.

예제 코드

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt

df = sb.load_dataset('iris')
sb.distplot(df['petal_length'], kde = True, hist = False)
plt.show()

실행 결과

Seaborn 라이브러리로 Python에서 커널 밀도 추정(KDE)을 시각화하는 방법

코드 설명

  • 패키지 임포트: pandas, seaborn, matplotlib 등 필요한 패키지들을 가져옵니다.
  • 데이터 로드: load_dataset 함수를 사용해 seaborn에 내장된 붓꽃(iris) 데이터셋을 불러옵니다.
  • 대상 열 선택: 시각화할 값으로 꽃잎 길이(petal_length) 열을 지정합니다.
  • KDE 설정: distplot 호출 시 kde=True, hist=False로 설정하여 히스토그램은 생략하고 밀도 곡선만 표시합니다.
  • 그래프 출력: plt.show()를 통해 완성된 밀도 곡선 그래프를 화면에 나타냅니다.

참고: 반대로 kde 값을 False로 지정하면 밀도 곡선 없이 히스토그램만 표시됩니다.

추가 정보: 최신 버전의 Seaborn(0.11 이후)에서는 distplot이 공식적으로 deprecated(사용 중단 권고) 상태입니다. 따라서 새 프로젝트에서는 sb.kdeplot(df['petal_length']) 또는 sb.histplot(df['petal_length'], kde=True) 함수를 사용하는 것이 좋습니다. 두 함수 모두 동일하게 커널 밀도 추정 곡선을 손쉽게 그려낼 수 있습니다.