ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AI] seaborn
    AI 2023. 3. 27. 14:22
    728x90

    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) 보다 작거나 같은 값들 중 최댓값

     

    box plot 공식 문서

     

    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

     

    violin plot 공식 문서

     

    boxenplot

    여러개의 box형태, box + violin 합친 버전 느낌, 사용 많이 안함

     

    swarmplot

    각각의 데이터를 하나의 점으로 표현합니다.

    violin plot과 함께 사용하기 좋습니다.

     

    stripplot

     

    Distribution API

    범주형/연속형을 모두 살펴볼 수 있는 분포 시각화

    histplot

    히스토그램

     

    paramter

    -binwidth : 너비 조정
    -bins : 막대 개수 조정

     

    histplot 공식 문서

     

    kdeplot

    kernel Density Estimate

    여러 분포를 표현하기 위해 "multiple" paramter를 제공합니다.

    multiple : {“layer”, “stack”, “fill”}

    fill은 지양

     

    kdeplot 공식 문서

     

    ecdfplot

    "누적 밀도 함수"로 누적되는 양을 표현합니다.

     

    ecdfplot 공식 문서

     

    rugplot

    선을 사용한 밀도 함수로 추천되는 함수는 아닙니다.

     

    rugplot 공식 문서

     

     

     

    Relational API

    관계성 파악

    scatter plot

    산점도는 다음과 같은 요소를 사용할 수 있습니다.

    -style : data의 vector or key.
    		마커가 다른 포인트를 생성하는 그룹화 변수입니다. 
            숫자 타입을 가질 수 있지만 항상 범주형으로 취급됩니다.
    -hue   : data의 vector or key.
    	    다양한 색상의 포인트를 생성하는 그룹화 변수입니다.
    -size  : data의 vector or key.
    		 크기가 다른 포인트를 생성할 그룹화 변수입니다.

     

    scatter plot 공식 문서

     

     

    line plot

    fig, ax = plt.subplots(1, 1,figsize=(12, 7))
    sns.lineplot(x='year', y='Jan',data=flights_wide, ax=ax)

    line plot 공식 문서

     

     

    Regression API 

    회귀 분석

     

    Regplot

    선형성, 로그 등을 보여줄 때 유용합니다.

     

    regplot 공식 문서

     

     

    Matrix API

    히트맵

     

    Heatmap

    상관계수는 -1~1 까지이므로 색의 범위를 맞추기 위해 vmin, vmax로 범위를 조정합니다.

     

    heatmap 공식 문서

     

     

    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

    댓글

© 2022. code-space ALL RIGHTS RESERVED.