해당 게시글은 패스트캠퍼스에서 진행하는 AI 부트캠프에서 학습한내용과 교육과정을 토대로 작성했습니다.
6주차는 5주차에 이어서 EDA분석파트로 seaborn에 대해 리마인드 하고 싶은 내용을 정리하려고 한다.
항시 모듈 세팅
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
sns.load_dataset("flights")
위의 코드에서는 예시로 flights 를 사용
seaborn 의 load_dataset 으로 내장 데이터 셋을 사용하여 데이터를 시각화 하는데 사용 할수 있다
# 폰트세팅
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)
# seaborn테마 세팅
sns.set_theme(style='whitegrid')
간편 테마종류
쓰임새 : 전체 데이터를 특정 구간별 정보를 확인할 때 사용.
예시코드 :
sns.histplot(data=flights_data, x="passengers", bins=20, kde=True)
결과 :
Histplot |
---|
![]() |
그림1. |
설명 :
쓰임새 : 컬럼별, 로우별로 여러 데이터그래프를 가져오는데 사용
예시코드 :
sns.displot(
data=tips_data,
x='total_bill',
row='time',
col='day',
kind='hist',
hue='time',
kde = True,
palette='Paired',
)
결과 :
Displot |
---|
![]() |
그림2. |
설명 :
쓰임새 : 주로 범주형 데이터 비교에 사용되며, 데이터 간의 상대적 크기를 강조할 때 사용
예시코드 :
sns.barplot(
data=tips_data,
x='tip',
y='time',
palette='Paired',
)
결과 :
Barplot |
---|
![]() |
그림3. |
설명 :
쓰임새 : 범주형 데이터의 종류별 수치를 보여주는데 사용
예시코드 :
sns.countplot(data=data, x="sex", hue="species", palette="viridis")
결과 :
Countplot |
---|
![]() |
그림4. |
설명 :
정의 : 데이터의 분포와 이상치를 한눈에 파악하기 위해 사용하는 그래프
쓰임새 : 중앙값, 사분위수, 이상치 등을 시각적으로 표현하는데 강점이 있음
예시코드 :
sns.boxplot(data=tips_data, x='day', y='tip',)
결과 :
Boxplot |
---|
![]() |
그림5. |
설명 :
정의 : 선 그래프를 생성하는 데 사용되며, 데이터의 추세를 시각화하여 표현하는 그래프
활용도 : 수치 데이터의 경향성과 패턴을 시각적으로 파악하기 위한 용도로 활용
예시코드 :
sns.lineplot(data=tips_data , x='total_bill', y='tip', hue='time', palette='viridis')
결과 :
Lineplot |
---|
![]() |
그림6. |
설명 :
정의 : 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
: 수치지점의 투명도 조절 **정의 : 주어진 데이터의 각 feature들 사이의 관계를 표시하는 데 사용하는 그래프
활용도 : 여러 변수 간의 관계를 시각화하는 데 사용
단점 : 계산된 모든 결과를 보여주기 때문에, feature가 많은 경우 사용하기 부적합
예시코드 :
sns.pairplot(data=tips_data, hue='time' , palette='summer')
결과 :
Pairplot |
---|
![]() |
그림8. |
설명 :
정의 : 정사각형 그림에 데이터에 대한 정도 차이를 색 차이로 보여주는 그래프
활용도 : 데이터의 분포와 행과 열의 상관 관계를 보여주는 데 유용
예시 : 열화상카메라
예시코드 :
# 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에 해당설명 : 그래프의 제목 설정
사진 : 빨간색으로 해당위치 표시
plt.xticks / plt.yticks |
---|
![]() |
그림10. |
설명 : 그래프의 x,y 축에 표시할 라벨설정
사진 : 빨간색으로 해당위치 표시
plt.xticks / plt.yticks |
---|
![]() |
그림11. |
설명 : 그래프의 눈금설정
사진 : 빨간색으로 해당위치 표시
plt.xticks / plt.yticks |
---|
![]() |
그림12. |
설명 : 그래프 출력(최종형태로 출력하기때문에 코드의 맨 마지막줄에 와야함)
사진 : X
어느덧 6주차에 접어 들었다.
이번주도 역시 EDA 데이터분석에 관하여 학습을진행했다.
개인적으로 데이터를 시각화해서 보는게 훨씬 가독성이 좋아서 자주 사용해야겠다 라는 생각이 든다. 금요일 부터 본격적인 EDA 프로젝트가 진행했는데
여행 이라는 주제로 어떻게 데이터를 분석할지가 고민이다.
프로젝트를 통해 얻어가는것이 많았으면 한다.