자신에게 친절할 것 :)

Statistics

[Statistics] PDF 확률 밀도 함수, KDE kernel Density Estimation

Tashapark 2024. 6. 1. 21:46
728x90

# 코드잇 데이터 사이언스 강의 듣는 중

 

 

<PDF posibility density function>

- 확률밀도함수: 값들이 어떻게 분포되어 있는지 보여주는 것. 

- 분포는 히스토그램과 비슷함. 히스토그램 막대를 무한으로 늘리면 나타나는 것과 비슷함. 

- but, 히스토그램은 각 구간마다 값이 몇 개 있는지 셌다면, PDF는 각 구간이 전체에서 차지하는 비중(확률)을 보는 것. 

 

 

- 데이터 셋의 분포를 나타냄. 

- 특정 구간의 확률은 그래프 아래 그 구간의 면적과 동일함. 

- 그래프 아래의 모든 면적의 합 = 1

 

- 연속형 데이터에서 특정 값이 일어날 확률은 0%

- 즉, 키가 174.5 일 확률은 0임. coz, 174.50000001 일 수도 있고, 몇 명을 모아도 저 값의 딱 떨어질 확률은 0에 가까움

- 주사위 숫자나 동전 면의 확률과 달리,

키, 몸무게,속도 같은 연속 변수들은 해당 값의 확률을 구하는 것이 아니라 그 값이 속하는 범위에 속할 확률을 구하는 것. 

 

=> 연속형 데이터에 좋지만, 사실상 이상적이고 실제 함수를 정확히 반영되는 게 아님.

so, KDE를 이용함. 


<KDE kernel Density Estimation>

- but, 사실 실제 데이터는 저런 매끄러운 곡선이 아님... 

무한대의 데이터를 모으는 것은 불가능하기 때문. 

- so, 아래와 같은 데이터(실제 정보)를 기반으로, 추측해서 PDF 로 만들어줌. 

 

- kind ='kde' 넣으면 그릴 수 있음. 

df['height'].plot(kind='kde')
plt.show()

 

 

 

 

 

 

 

 

 

- bw_method = 로 그래프의 러프한 정도를 선택할 수 있음. 

- 숫자가 낮아질수록 로데이터와 유사해짐. 

df['height'].plot(kind='kde', bw_method =0.1)
plt.show()

df['height'].plot(kind='kde', bw_method =2)

 

 

- 완만해짐. 

--> 데이터를 더 잘 설명할 수 있는 값으로 정도를 조절 할 것. 

 

 

 

 

 

 

+ seaborn으로 KDE 그래프를 그릴 수 있음. 

728x90
반응형