반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART) 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 

 

<seaborn 관련 글>

 

2021.08.08 - [파이썬 패키지/데이터시각화] - [Python/Seaborn] 데이터 시각화 라이브러리_1편. Seaborn 소개

2021.08.18 - [파이썬 패키지/데이터시각화] - [Python/Seaborn] 데이터 시각화 라이브러리_2편. Seaborn 학습을 위한 데이터 셋 3종 소개 (ft. 붓꽃, 타이타닉, 팁 데이터 셋)

2021.08.19 - [파이썬 패키지/데이터시각화] - [Python/Seaborn] 데이터 시각화 라이브러리_3편. Seaborn 그래프 종류 총 정리(ft. Relational plots)

2021.08.22 - [파이썬 패키지/데이터시각화] - [Python/Seaborn] 데이터 시각화 라이브러리_4편. Seaborn 그래프 종류 총 정리(ft. Distribution plots)

2021.08.23 - [파이썬 패키지/데이터시각화] - [Python/Seaborn] 데이터 시각화 라이브러리_5편. Seaborn 그래프 종류 총 정리(ft. Categorical plots(상))

2021.08.24 - [파이썬 패키지/데이터시각화] - [Python/Seaborn] 데이터 시각화 라이브러리_6편. Seaborn 그래프 종류 총 정리(ft. Categorical plots(하))

2021.08.26 - [파이썬 패키지/데이터시각화] - [Python/Seaborn] 데이터 시각화 라이브러리_7편. Seaborn 그래프 종류 총 정리(ft. Regression Plot)

 


 

오늘은 데이터간의 상관관계를 파악하는데에 많이 사용하는 Matrix plots에 대해서 공부해보겠습니다.

 

Matrix plots에는 heatmap, clustermap 두 가지가 있지만 clustermap은 잘 사용되지 않아서 heatmap만 다루어보도록 하겠습니다.

 

heatmap

  • 열화상 카메라로 찍은 것 처럼 데이터의 상관관계 정도에 따라 색차이를 부여한 그래프
  • 기본적으로 2차원 데이터가 필요(pivot-table, correlation 개념 이용)

 

1) heatmap과 pivot-table

 

오늘도 지난 강의들에서 이용했던 tips 데이터 셋을 이용해보겠습니다.

 

tips = sns.load_dataset('tips')
tips

 

 

pivot_table 함수를 이용해 행은 'day', 열은 'size', 데이터값은 'tip'으로 된 Matrix를 만들어 보겠습니다.

 

pivot = tips.pivot_table(index='day', columns='size', values='tip')
pivot

 

pivot-table에 대해서 더 공부하고 싶으시면 아래의 글을 참고해주세요.

 

2021.07.25 - [파이썬 패키지/데이터분석] - [파이썬 데이터 분석] 10편. 데이터 프레임 배치를 내맘대로! (ft. pivot-table, groupby, multi-index)

 

 

다시 본론으로 돌아와서 위에서 만든 pivot-table을 이용해 heatmap을 그려보겠습니다. 참고로 annot 파라미터를 True로 설정해주면 값을 칸 안에 표시해줍니다.

 

sns.heatmap(pivot, annot=True)

 

아래의 heatmap은 요일과 식사인원에 따른 팁의 평균을 직관적으로 보여줍니다.

 

전반적으로 식사인원이 많을 수록 많은 tip을 주고, 대략 인당 1달러를 팁으로 주는 듯하네요.

 

2) heatmap과 correlation matrix

 

이번에는 붓꽃 데이터를 이용해서 컬럼간의 상관관계를 heatmap으로 그려 보겠습니다.

 

iris = sns.load_dataset("iris")
iris

 

 

corr( ) 함수를 이용해서 iris 데이터 셋의 컬럼들간의 관계를 2차원 행렬로 만들어 보겠습니다.

 

corr = iris.corr()
corr

 

같은 열끼리는 상관관계 정도가 1(동일)이며, -값의 경우는 반비례하는 상관관계를 가지는 것이라고 합니다.

 

마찬가지로 corr을 heatmap에 넣어서 그래프를 그려보겠습니다.

 

sns.heatmap(corr, annot=True)

 

아래의 데이터 셋의 의미를 참고해보았을 때, 다음과 같은 추론을 할 수 있습니다.

 

1) 꽃잎의 길이 길면 너비도 넓다.

2) 꽃잎의 길이와 꽃받침의 길이 또한 높은 상관관계를 가진다.

3) 꽃받침의 너비와 꽃받침의 길이는 거의 관계가 없다.

 

컬럼명 의미
sepal_length 꽃받침의 길이
sepal_width 꽃받침의 너비
petal_length 꽃잎의 길이
petal_width 꽃잎의 너비

 

참고로 상관 계수는 일반적으로,

값이 -1.0 ~ -0.7 이면, 강한 음적 상관관계
값이 -0.7 ~ -0.3 이면, 뚜렷한 음적 상관관계
값이 -0.3 ~ -0.1 이면, 약한 음적 상관관계
값이 -0.1 ~ +0.1 이면, 없다고 할 수 있는 상관관계
값이 +0.1 ~ +0.3 이면, 약한 양적 상관관계
값이 +0.3 ~ +0.7 이면, 뚜렷한 양적 상관관계
값이 +0.7 ~ +1.0 이면, 강한 양적 상관관계로 해석된다고 합니다.

 


<참고 자료>

 

패스트캠퍼스 유료강의_직장인을 위한 파이썬 데이터분석 올인원 패키지 Online.

 

반응형

+ Recent posts