-
[AI] seabornAI 2023. 3. 27. 14:22728x90
Seaborn
Matplotlib 기반 통계 시각화 라이브러리
Categorical API
데이터의 기본 통계량
Countplot 함수
countplot함수는 seaborn의 Categorical API에서 대표적인 시각화로 범주를 이산적으로 세서 막대 그래프로 그려주는 함수입니다.
Parameter
-x : data frame(pandas)의 feature, x축 범주 지정 -y : data frame(pandas)의 feature, y축 범주 지정 -data -hue : data frame(pandas)의 feature, 색상 적용할 attribute name(=head)지정 - hue_order : 색 구분을 위한 색 순서 지정 -order : data 순서 지정 -palette : 색상 지정 -color : 색상 지정 -saturate : 색 순서 지정, 권장 X -ax : matplotlib와 함께 사용하기 위해 ax 지정
describe()
-count -mead (평균) -std (표준 편차) //사분위수 : 데이터를 4등분한 관측값 -min -25% (lower quartile) -50% (median) -75% (upper quartile) -max
Box plot
분포를 나타내는 대표적인 시각화 방법
간단하게 나타내기 적합, 실제 분포를 표현하기에는 부족
-Interquartile range(IQR) : 25% ~ 75%
-Whisker : 박스 외부의 범위를 나타내는 선
-outlier : IQR * (-1.5) ~ IQR * (1.5) 을 벗어나는 값
-min : IQR *(*-1.5) 보다 크거나 같은 값들 중 최솟값
-max : IQR * (1.5) 보다 작거나 같은 값들 중 최댓값
Violin Plot
box plot을 약간 변형, 곡선으로 표현
50,51,52...같은 이산적인 값을 연속적으로 표현하다 보니 데이터의 손실과 오차가 존재합니다.
(없는 값도 있는것처럼 표현되는 경우)
Kernel density estimate를 사용하여 데이터를 연속으로 처리하는데, 근사하는 구간에서 부정확할 수 있습니다.
어떤 kernel을 쓰느냐에 따라 근사되는 표현 방식이 달라집니다.
이를 해결하고자
-BW : 분포 표현을 얼마나 자세하게 보여줄 것인가 default = 0.2, 값을 작게 하면 구간을 세분화 - 'scott', 'silverman', float -cut : 끝부분을 얼마나 자를 것인가 - float -inner : 내부를 어떻게 표현할 것인가 - "box", "quartile", "point", "stick", NONE
비교를 위한 Parameter도 제공합니다.
-scale : 각 바이올린의 종류 - {“area”, “count”, “width”}, optional -"area" : 각 바이올린의 면적이 동일 -"count": 해당 구간 차원의 관찰 개수에 따라 바이올린의 너비 조정 -"width": 각 바이올린의 너비가 동일 -split : 동시에 비교 - bool, optional
boxenplot
여러개의 box형태, box + violin 합친 버전 느낌, 사용 많이 안함
swarmplot
각각의 데이터를 하나의 점으로 표현합니다.
violin plot과 함께 사용하기 좋습니다.
stripplot
Distribution API
범주형/연속형을 모두 살펴볼 수 있는 분포 시각화
histplot
히스토그램
paramter
-binwidth : 너비 조정 -bins : 막대 개수 조정
kdeplot
kernel Density Estimate
여러 분포를 표현하기 위해 "multiple" paramter를 제공합니다.
multiple : {“layer”, “stack”, “fill”}
fill은 지양
ecdfplot
"누적 밀도 함수"로 누적되는 양을 표현합니다.
rugplot
선을 사용한 밀도 함수로 추천되는 함수는 아닙니다.
Relational API
관계성 파악
scatter plot
산점도는 다음과 같은 요소를 사용할 수 있습니다.
-style : data의 vector or key. 마커가 다른 포인트를 생성하는 그룹화 변수입니다. 숫자 타입을 가질 수 있지만 항상 범주형으로 취급됩니다. -hue : data의 vector or key. 다양한 색상의 포인트를 생성하는 그룹화 변수입니다. -size : data의 vector or key. 크기가 다른 포인트를 생성할 그룹화 변수입니다.
line plot
fig, ax = plt.subplots(1, 1,figsize=(12, 7)) sns.lineplot(x='year', y='Jan',data=flights_wide, ax=ax)
Regression API
회귀 분석
Regplot
선형성, 로그 등을 보여줄 때 유용합니다.
Matrix API
히트맵
Heatmap
상관계수는 -1~1 까지이므로 색의 범위를 맞추기 위해 vmin, vmax로 범위를 조정합니다.
728x90'AI' 카테고리의 다른 글
[AI] Gradient Descent Methods (경사하강법) (0) 2023.04.04 [AI] Optimization(최적화) (0) 2023.04.03 [AI] Neural Network, 활성 함수, MLP (0) 2023.04.03 [AI] 딥러닝 기초 (0) 2023.03.31 [AI] Week3 학습 정리 (0) 2023.03.23