[WEEK_06] 학습일지06. Python EDA

ardor924·2023년 8월 25일
0
post-thumbnail

해당 게시글은 패스트캠퍼스에서 진행하는 AI 부트캠프에서 학습한내용과 교육과정을 토대로 작성했습니다.


AI 부트캠프 6주차 학습일지


1. 리마인드


6주차는 5주차에 이어서 EDA분석파트로 seaborn에 대해 리마인드 하고 싶은 내용을 정리하려고 한다.

1.1 유틸기능


1.1.1 항시 모듈 세팅


항시 모듈 세팅

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

1.1.2 데이터셋 불러오기


sns.load_dataset("flights")

위의 코드에서는 예시로 flights 를 사용
seaborn 의 load_dataset 으로 내장 데이터 셋을 사용하여 데이터를 시각화 하는데 사용 할수 있다

1.1.3 폰트세팅


# 폰트세팅
import matplotlib
import matplotlib.font_manager as fm

font_location = "C:\\Windows\\Fonts\\Malgun.ttf"
font_name = fm.FontProperties(fname=font_location).get_name()
matplotlib.rc('font',family=font_name)

print(font_name)

1.1.4 테마설정


# seaborn테마 세팅
sns.set_theme(style='whitegrid')

간편 테마종류

  1. 흰색배경 :
    sns.set_theme(style='white')
  2. 흰색배경+ 그리드 :
    sns.set_theme(style='whitegrid')
  3. 검은배경+ 그리드 :
    sns.set_theme(style='darkgrid')
  4. 검은배경 :
    sns.set_theme(style='dark')
  5. 흰색배경 :
    sns.set_theme(style='ticks')

1.2 seaborn


1.2.1 Histplot


쓰임새 : 전체 데이터를 특정 구간별 정보를 확인할 때 사용.

예시코드 :

sns.histplot(data=flights_data, x="passengers", bins=20, kde=True)

결과 :

Histplot
그림1.

설명 :

  • data : 타겟 데이터
  • x축 : 확인하려는 컬럼
  • bins : 표시할 막대 갯수
  • kde : 커널 밀도 추정 (막대위에 곡률을 표현 / True가 활성화 / False가 비활성화)

1.2.2 Displot


쓰임새 : 컬럼별, 로우별로 여러 데이터그래프를 가져오는데 사용

예시코드 :

sns.displot(
            data=tips_data,
            x='total_bill',
            row='time',
            col='day',
            kind='hist', 
            hue='time',
            kde = True,
            palette='Paired',
        )

결과 :

Displot
그림2.

설명 :

  • data : 타겟 데이터
  • x축 : 확인하려는 컬럼
  • row,col : 주로 표시하려는 그래프속성
  • kind : histplot, kdeplot, ecdfplot 등 출력을 원하는 그래프로 변경가능
  • hue : 우측에 간략한 정보표시
  • palette : 그래프색상변경

1.2.3 Barplot


쓰임새 : 주로 범주형 데이터 비교에 사용되며, 데이터 간의 상대적 크기를 강조할 때 사용

예시코드 :

sns.barplot(
                data=tips_data,
                x='tip',
                y='time',
                palette='Paired',
            )

결과 :

Barplot
그림3.

설명 :

  • data : 타겟 데이터
  • x축 : 확인하려는 컬럼
  • y축 : 범주형데이터(규칙있는 문자형)

1.2.4 Countplot


쓰임새 : 범주형 데이터의 종류별 수치를 보여주는데 사용

예시코드 :

sns.countplot(data=data, x="sex", hue="species", palette="viridis")

결과 :

Countplot
그림4.

설명 :

  • data : 타겟 데이터
  • x축 : 확인하려는 컬럼
  • hue : 범주형데이터(규칙있는 문자형)

1.2.5 Boxplot


정의 : 데이터의 분포와 이상치를 한눈에 파악하기 위해 사용하는 그래프
쓰임새 : 중앙값, 사분위수, 이상치 등을 시각적으로 표현하는데 강점이 있음

예시코드 :

sns.boxplot(data=tips_data, x='day', y='tip',)

결과 :

Boxplot
그림5.

설명 :

  • data : 타겟 데이터
  • x축 : 확인하려는 x축 컬럼
  • y축 : 확인하려는 y축 컬럼

1.2.6 Lineplot


정의 : 선 그래프를 생성하는 데 사용되며, 데이터의 추세를 시각화하여 표현하는 그래프
활용도 : 수치 데이터의 경향성과 패턴을 시각적으로 파악하기 위한 용도로 활용

예시코드 :

sns.lineplot(data=tips_data , x='total_bill', y='tip', hue='time', palette='viridis')

결과 :

Lineplot
그림6.

설명 :

  • data : 타겟 데이터
  • x축 : 확인하려는 x축 컬럼(수치값)
  • y축 : 확인하려는 y축 컬럼(수치값)

1.2.7 Scatterplot


정의 : x, y에 두 변수 간의 관계를 시각화하는 데 사용하는 그래프
활용도 : 데이터의 분포를 보여주는 데 유용함

예시코드 :

sns.scatterplot(data=tips_data , 
                x='total_bill', y='tip', 
                hue = 'time',palette='viridis',
                s=60 , alpha=0.3
               )

결과 :

Scatterplot
그림7.

설명 :

  • data : 타겟 데이터
  • x축 : 확인하려는 x축 컬럼(수치값)
  • y축 : 확인하려는 y축 컬럼(수치값)
  • s : 각각의 수치지점(포인트)의 크기**
  • alpha : 수치지점의 투명도 조절 **

1.2.8 Pairplot


정의 : 주어진 데이터의 각 feature들 사이의 관계를 표시하는 데 사용하는 그래프
활용도 : 여러 변수 간의 관계를 시각화하는 데 사용
단점 : 계산된 모든 결과를 보여주기 때문에, feature가 많은 경우 사용하기 부적합

예시코드 :

sns.pairplot(data=tips_data, hue='time' , palette='summer')

결과 :

Pairplot
그림8.

설명 :

  • data : 타겟 데이터

1.2.9 Heatmap


정의 : 정사각형 그림에 데이터에 대한 정도 차이를 색 차이로 보여주는 그래프
활용도 : 데이터의 분포와 행과 열의 상관 관계를 보여주는 데 유용
예시 : 열화상카메라

예시코드 :


# 1. Correlation matrix를생성(각 feature간 상관관계를 파악하기 위해 )
tips_data.corr()

# 2.
sns.heatmap(data=data.corr(),annot=True, fmt='.3f' ,cmap="Purples")

결과 :

Pairplot
그림9.

설명 :

  • 사전필수 작업 : 결측치제거 필요 data.dropna()
  • data.corr() : Correlation matrix를생성
  • data : 타겟 데이터
  • annot : 타일에 수치값 표시 (False : 비활성화 / True : 활성화)
  • fmt : 소수점 자리 표시 지정
  • cmap : 다른 plot들의 palette에 해당

1.3 pyplot


1.3.1 plt.title


설명 : 그래프의 제목 설정
사진 : 빨간색으로 해당위치 표시

plt.xticks / plt.yticks
그림10.

1.3.2 plt.xlabel / plt.ylabel


설명 : 그래프의 x,y 축에 표시할 라벨설정
사진 : 빨간색으로 해당위치 표시

plt.xticks / plt.yticks
그림11.

1.3.3 plt.xticks / plt.yticks


설명 : 그래프의 눈금설정
사진 : 빨간색으로 해당위치 표시

plt.xticks / plt.yticks
그림12.

1.3.4 plt.show()


설명 : 그래프 출력(최종형태로 출력하기때문에 코드의 맨 마지막줄에 와야함)
사진 : X

2. 소감


어느덧 6주차에 접어 들었다.
이번주도 역시 EDA 데이터분석에 관하여 학습을진행했다.
개인적으로 데이터를 시각화해서 보는게 훨씬 가독성이 좋아서 자주 사용해야겠다 라는 생각이 든다. 금요일 부터 본격적인 EDA 프로젝트가 진행했는데
여행 이라는 주제로 어떻게 데이터를 분석할지가 고민이다.
프로젝트를 통해 얻어가는것이 많았으면 한다.

profile
오늘도 꾸준히 무언가를 개발하는중...

0개의 댓글

관련 채용 정보