주류데이터 상관관계 분석하기
주류 데이터의 각 특성에 대해서 상관계수를 계산하고, 이를 seaborn의 heatmap과 pairplot을 통해서 시각화해보기
(1) 필요한 패키지 설치
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
(2) 피처간의 상관계수 행렬 구하기
cols = ['beer_servings', 'spirit_servings', 'wine_servings', 'total_litres_of_pure_alcohol'] #주류데이터 열 이름들입니다
corr = drink_df[cols].corr(method = 'pearson')
corr
Pearson은 상관계수를 구하는 계산 방법 중 하나를 의미하며, 가장 널리 쓰이는 방법입니다.
(3) heatmap의 입력을 만들어주기 위해서 상관계수 값에 .values를 적용시키고, 히트맵 차트의 x,y축에 레이블을 달아주기 위한 리스트를 만들기
corr.values
column_names = ['beer', 'spirit', 'wine', 'alcohol']
(4) Heatmap으로 시각화
import seaborn as sns
import matplotlib.pyplot as plt
# 레이블의 폰트 사이즈를 조정
sns.set(font_scale=1.5)
hm = sns.heatmap(corr.values, #데이터
cbar=True, #오른쪽 컬러 막대 출력 여부
annot=True, #차트에 숫자를 보여줄 것인지 여부
square=True, #차트를 정사각형으로 할 것인지
fmt='.2f', #숫자의 출력 소수점 자리 개수 조절
annot_kws={'size': 15}, #숫자 출력 시 숫자 크기 조절
yticklabels=column_names, #y축에 컬럼명 출력
xticklabels=column_names) #x축에 컬럼명 출력ㄴ
plt.tight_layout()
plt.show()
피어슨의 상관계수는 일반적으로,
값이 -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 이면, 강한 양적 상관관계
로 해석됩니다.
(5) 산점도(Pairplot) 확인
pairplot은 데이터프레임을 인수로 받아 그리드(grid) 형태로 각 데이터 열의 조합에 대해 산점도를 그립니다. 같은 데이터가 만나는 대각선 영역에는 해당 데이터의 히스토그램을 그림.
sns.set(style='whitegrid')
sns.pairplot(drink_df[['beer_servings', 'spirit_servings',
'wine_servings', 'total_litres_of_pure_alcohol']])
plt.show()