데이터 시각화를 수행할 때, 어떤 그래프를 선택해야 정보가 가장 잘 전달될지 고려해야 한다.
특히 데이터가 무한한 경우, 특정 값에 대한 정확한 확률 계산은 의미가 없을 수 있다. 이런 상황에서는 특정 범위에 대한 계산이 더 유의미할 것이다. 이때, 확률을 효과적으로 표현해 주는 라이브러리로 seaborn이 유용하다.
seaborn를 사용하여 통계 데이터 시각화를 해보자 !!
◈ Seaborn
Statistical Data Visualization
통계를 기반한 데이터 시각화
: matplotlib를 기반으로 하는 Python 데이터 시각화 라이브러리.
import pandas as pd
import seaborn as sns # seaborn은 sns로 칭한다.
seaborn은 데이터를 시각적으로 나타내는 데에 강력한 기능을 제공하며,
특히 확률 분포를 표현하는 데에 적합한 그래프를 생성할 수 있다.
여기서 잠깐 확률 밀도 함수의 특징을 알아보자 !
▼ PDF (Probability Density Function) : 확률 밀도 함수
- 데이터셋의 분포를 나타낸다.
- 특정 구간의 확률은 그래프 아래 그 구간의 면적과 동일하다.
- 그래프 아래의 모든 면적을 더하면 1이 된다.
데이터는 무수히 많은 경우의 수를 가지고 있지만, 우리가 갖은 데이터로는 정확한 분포의 그래프를 그리기 어렵다.
하지만 KDE(Kernel Density Estimation) 를 사용하면 주어진 데이터 셋을 이용하여 진짜 분포에 가깝게 추측이 가능하다.
import pandas as pd
import seaborn as sns
data_df = pd.read_csv('dataset/body.csv', index_col=0) # 데이터 csv파일 읽기
data_df.head() # 상위 데이터 조회
data_df['Height'] # 해당 컬럼행 데이터 조회 (pandas Series)
data_df['Height'].value_counts() # 몇번 있는지 중복 데이터 수 조회
data_df['Height'].value_counts().sort_index() # index순으로 sort
data_df['Height'].value_counts().sort_index().plot() # 그래프 그리기
▼ seaborn 사용하여 그래프 그리기
sns.kdeplot(data_df['Height']) # seaborn kdeplot함수에 키 데이터 전송.
▷ bw = (수치)
몇 개의 구간으로 나누는지 데이터의 정확도를 높여준다.
bw를 너무 크게 설정하면 오히려 정확하지 않은 잘못된 그래프를 그려주니 유의하여 설정해 줘야 된다 !
sns.kdeplot(data_df['Height'], bw=0.05)
'BE > Python' 카테고리의 다른 글
[Python] 퀵 정렬을 위한 partition 함수 구현하기 (1) | 2024.02.09 |
---|---|
[Python] 번호판 인식 데이터셋 생산하기 (가상 차량 번호판 생성) (1) | 2024.01.29 |
[Python] 데이터 시각화 - Matplotlib 그래프 그리기 (1) | 2023.11.17 |
[Python] pandas로 데이터 분석하기 - DataFrame 생성. (0) | 2023.11.17 |
[Python] Numpy 유용한 함수 (통계 함수) (0) | 2023.11.16 |
댓글