[TIL] 22.09.26

문종현·2022년 9월 26일
0

TIL

목록 보기
4/119

내일은 예비군이라 TIL 작성을 못할 것 같다.. 😥

👉 오늘 한 일

  • 파이썬 기술통계 라이브러리
  • EDA_수치형 변수의 기술통계와 시각화




아나콘다 : 세계에서 가장 인기있는 Python 배포 플랫폼

  • 가상환경 설정을 쉽게 만들어줌

주피터 : 파이썬 편집 도구.

  • 코드를 블록 단위로 실행한 결과를 확인할 수 있고, 문서화도 함께 할 수 있음

파이썬 기술통계 라이브러리

추상화된 도구를 통한 기술통계 구하기

라이브러리를 사용하면 대용량 데이터에 사용하기 어렵고, 놓칠 수 있는 부분이 발생할 수 있고, 미세한 컨트롤이 불가능하는 등 단점이 존재함


pandas profiling : 자주 사용하는 기술통계들을 한번에 수행, 리포트 생성하는 라이브러리
pandas-profiling/pandas-profiling: Create HTML profiling reports from pandas DataFrame objects

  • pandas, numpy와의 버전 호환성 이슈 체크
  • 판다스 프로파일링 외에도 추상화된 도구들에서 내부 버전이 맞지 않아서 호환성 이슈가 발생할 수 있음
  • .ipynb 파일 내부에서도 리포트를 볼 수 있으나 profile.to_file()로 html파일 생성해서 보는 것을 추천
  • overview : 전체적인 데이터 정보
  • variable : 변수 하나하나의 정보
    • distinct = unique. 유일값 개수
    • 개별 변수가 수치형인지, 범주형인지에 따라 다른 통계값을 보여줌
  • interaction : 수치형 변수 간의 분포
    • 상관관계를 파악 가능
  • correlations : 변수 간의 다양한 상관계수 값
  • missing values : 결측치
    • dendrogram : 군집화 시각화

sweetbiz : 추상화된 EDA를 해주는 도구. 마찬가지로 기술통계들을 한번에 수행하는 라이브러리
sweetviz · PyPI

  • association : 수치형 데이터에 대한 상관계수, 범주형 변수에 대한 관계
  • 장점 : 머신러닝 train, test 데이터셋에 대한 비교를 위해 만들어진 라이브러리라서 타겟 변수를 비교해볼 수 있음

autoviz : 기술통계들을 한번에 수행, 리포트 생성하는 라이브러리
AutoViML/AutoViz: Automatically Visualize any dataset, any size with a single line of code. Created by Ram Seshadri. Collaborators Welcome. Permission Granted upon Request.

  • bokeh chart를 이용해 동적인 시각화 표현
    • catplot, distplot, heatmap(corr), pair_scatter, violinplot 제공

seaborn.load_dataset : seaborn에서 기본적인 데이터셋 제공

  • mpg(mile per galon) 데이터셋 활용
  • 데이터는 메모리, 클라우드 상에 존재함

수치형 변수의 기술통계와 시각화

  • cmap = plt.colormaps()
  • plt.figure의 기본값 : (6.4, 4.8)
  • 수치형 변수를 범주형 기술통계로 보고싶은 경우 : 변수 type값 변경(astype()) 후 describe 지정
  • 시각화 시 로그가 거슬린다면 -> 변수에 넣어서 변수 호출 혹은 그래프 그린 뒤 plt.show() 혹은 ; 사용
  • .unique() : 유일값들을 확인해보고 수치형 변수인지 범주형 변수인지 확인해보기 위해 사용
  • hue는 한 그래프 내에서 범주별로 색상을 다르게 지정, col은 값에 따라 그래프를 나누어 그려줌(서브플롯)
  • plot마다 겹쳐서 그리는 것을 지원하는 것도 있고, 아닌 것도 있음
  • hist => 빈도, kde=> 밀도 == 적분했을 때 1이 되는 값
  • FacetGrid 기능: 서브플롯(변수 값에 따라서 다른 면에 표현하고자 할 때)
    • e.g. hue, col

왜도(skewness)

  • 실수 값 확률 변수의 확률 분포 비대칭성을 나타내는 지표
  • 왜도의 값은 양수나 음수가 될 수 있으며 정의되지 않을 수도 있음
  • 왜도가 음수일 경우에는 확률밀도함수의 왼쪽 부분에 긴 꼬리를 가지며 중앙값을 포함한 자료가 오른쪽에 더 많이 분포
  • 왜도가 양수일 때는 확률밀도함수의 오른쪽 부분에 긴 꼬리를 가지며 자료가 왼쪽에 더 많이 분포
  • 평균과 중앙값이 같으면 왜도는 0

첨도(kurtosis)

  • 확률분포의 뾰족한 정도를 나타내는 척도
  • 관측치들이 어느 정도 집중적으로 중심에 몰려 있는가를 측정할 때 사용
  • pandas에서는 첨도 정의에 피셔의 정의 사용
  • 첨도값(K)이 0에 가까우면 산포도가 정규분포에 가까움
  • 0보다 작을 경우에는(K<0) 산포는 정규분포보다 더 뾰족한 분포(꼬리가 얇은 분포)
  • 첨도값이 0보다 큰 양수이면(K>0) 정규분포보다 더 완만한 납작한 분포(꼬리가 두꺼운 분포)

변수를 전부 다 포함할 시에 스케일 값이 서로 달라서 파악하기 힘듦. 그래서 서브플롯으로 개별 변수 별로 시각화함

스케일링 : 변수들의 범위 혹은 분포를 같게 만드는 작업

  • standard scaling(Standardization. 표준화) : (관측치 - 평균) / 표준편차

    • 특성들의 평균을 0, 편차를 1로 스케일링
    • Z-Score 활용
    • 모집단이 정규분포(가우시안 분포)를 따를 때 사용
    • 가우시안 분포를 따르는지 검정해야 함
  • min-max scaling(normalization. 정규화) : (관측치 - 최소값) / (최대값 - 최소값)

    • 값을 0과 1사이로 축소시킴. 즉, 비율의 값을 가지게 되며 가장 작은 값은 0의 값을 가지고 가장 큰 값은 1의 값을 가짐
    • min, max 활용
    • 이상치에 취약함
  • robust scaling : (관측치 - 1분위수) / IQR

    • 특성들의 중앙값을 0, IQR 값이 1이 되도록 스케일링
    • 4분위수 활용
    • 아웃라이어 영향 최소화

잔차 : 관측값과 회귀선(예측값)과의 오차

  • regplot의 직선이 residplot의 0축으로 나타남

상관계수

  • 상관 계수 값(r)은 X 와 Y 가 완전히 동일하면 +1, 전혀 다르면 0, 반대방향으로 완전히 동일하면 –1 을 가짐
  • np.triu() : matrix를 상삼각행렬로 만드는 numpy math
  • np.ones_like(x) : x와 크기만 같은 1로 이루어진 array를 생성
  • np.triu(np.ones_like(corr)) 와 같은 식으로 사용해서 히트맵을 마스킹, 상삼각행렬만 시각화
    • 자기자신과의 상관관계, 중복값을 지워서 가독성을 높이기 위해 대각행렬 기준으로 한쪽의 데이터들만 masking 기법을 통해 plot함

퀴즈 정리

lmplot : scatterplot과 regplot을 함께 표현해볼 수 있는 그래프로 범주형 변수에 따라 다른 색상과 서브플롯으로 그려볼 수 있는 시각화 기능을 제공

  • 회귀선과 함께 scatterplot 의 서브플롯을 그려볼 수 있음
  • hue 옵션이 있어 색상을 통해 범주형 변수와 함께 표현할 수 있음
  • 두 변수 X, Y가 만나는 지점을 표시함

relplot : 수치 데이터의 관계를 표현하기 위한 그래프를 서브플롯으로 그려주는 역할

  • kind를 통해 scatter, line 을 지정해 시각화 할 수 있음
  • hue는 색상을 의미하며 범주형 값에 따라 색상을 다르게 표현함
profile
자라나라 새싹새싹🌱

0개의 댓글