티스토리 뷰
반응형
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] 머신러닝 딥러닝 문제해결 전략
반응형