티스토리 뷰

반응형
https://www.kaggle.com/werooring/ch4-data-visualization-relational

import seaborn as sns

flights = sns.load_dataset('flights') # 비행기 탑승자 수 데이터 불러오기

flights.head()

 

관계도는 데이터 사이 관계 표시

 

히트맵

 

데이터 간 관계를 색상으로 표현한 그래프

-> 데이터가 많으면 난잡해지므로 그때 쓴다.

 

여기부터 범주형 데이터와 수치형 데이터가 같이 있다면 어떤게 범주형이고 수치형인지 구분하는 능력이 필요하다는 걸 느꼈다.

 

그렇기에 관계도가 필요한 것.

 

히트맵을 그리려면 데이터 구조의 변환이 필요하다.

pandas의 pivot() 함수 활용.

 

pivot은 index와 columns에 전달한 변수를 행과 열로 지정 및 values 파라미터에 전달한 피처를 합한 표를 반환.

예: year month passengers

0 1949 jan 112

1 1949 feb 118 같은 일자형 그래프가 있다면, 열은 연도별, 행은 month별로 n*n 데이터 그래프로 바꿔준다.

flights_pivot = flights.pivot(index='month', 
                              columns='year', 
                              values='passengers')

flights_pivot

 

위의 바뀐 그래프를 히트맵으로 바꾸면 완전히 rgb 색상의 그래프를 볼 수 있다.

sns.heatmap(data=flights_pivot);

 

라인플롯

 

두 수치형 데이터 사이의 관계를 나타낼 때 사용

 

x파라미터에 전달한 값에 따라 y 파라미터에 전달 값의 평균과 95% 신뢰구간

 

sns.lineplot(x='year', y='passengers', data=flights);

 

 

산점도

산점도는 두 데이터의 관계를 점으로 표현하는 그래프.

점이 몇 백개 찍혀져 있는 그 그래프 맞다.

tips = sns.load_dataset('tips') # 팁 데이터 불러오기
tips.head() #출력

sns.scatterplot(x='total_bill', y='tip', data=tips); #산점도 그래프

 

 

hue를 이용하면 산점도가 특정 범주형 데이터별로 나뉘어서 색깔이 바뀐다!

 

sns.scatterplot(x='total_bill', y='tip', hue='time', data=tips);

 

 

회귀선을 포함한 산점도 그래프

 

산점도 + 라인플롯

sns.regplot(x='total_bill', y='tip', data=tips);

 

라인플롯의 신뢰구간을 99%로 늘리려면 ci 파라미터 사용

sns.regplot(x='total_bill', y='tip', ci=99, data=tips);

 

 

 

 

출처 : [Must Have] 머신러닝 딥러닝 문제해결 전략

https://wikidocs.net/book/13313

반응형