2020-01-19

커널 밀도 함수(Kernel Density Estimation)

(Kernel density estimation, 출처 : 위키피디아)


0. 커널 밀도 함수(Kernel Density Estimation, KDE)

Kernel Density Estimation이란

히스토그램(histogram) 등을 smoothing(스무딩)하는 것을 말한다.

굴곡이 심한 그래프나 히스토그램 등을

평준화하고 싶을 때 사용하는 추정(estimation) 방법이다.



1. 공식은 다음과 같다.

(공식. 솔직히 봐도 잘 모르겠다.)

자세하게 알고 싶다면 해당 문서를 참고하길 바란다.



2. matplotlib에서 히스토그램의 KDE를 그리기 위함이 목적이었다.

찾아보니 많은 분들이 이미 관련 글을 작성해주셨다.

네이버 블로그 root 님
- seaborn을 활용한 커널밀도함수 그리기

네이버 블로그 mathcom 님
- Kernel Density Estimation, Gaussian Kernel, Cumulative Distribution Function 사용하기

데이터 사이언스 스쿨
- 다차원에 KDE 적용하기

matplotlib에서 한 번에 두 개 이상의 히스토그램을 그리는 방법

0. 출처 : https://stackoverflow.com/a/6873956/11158529



1. 코드

import random
import numpy
from matplotlib import pyplot

# x 값과 y 값을 랜덤 가우스 곡선으로 생성.x = [random.gauss(3, 1) for _ in range(400)]
y = [random.gauss(4, 2) for _ in range(400)]

# bins 설정bins = numpy.linspace(-10, 10, 100)

# 히스토그램 그리기pyplot.hist(x, bins, alpha=0.5, label='x')  # 첫 번째 히스토그램pyplot.hist(y, bins, alpha=0.5, label='y')  # 두 번째 히스토그램pyplot.legend(loc='upper right')
pyplot.show()


2. 간단한 설명

x와 y 히스토그램을 그리려고 할 때 간단하게 복붙하면 된다.