이상치(outlier)
감지, 데이터 분포를 시각화, feature
간 관계를 나타내는데 사용데이터셋의 feature
간 상관관계를 시각화
ex) MLxtend
라이브러리의 scatterplotmatrix
함수 등을 이용해 산점도 행렬 시각화
RM
, MEDV
사이의 선형적인 관계 (맨아래 4번째)MDEV
는 정규 분포 형태 (맨아래 5번째)pipenv install mlxtend
import matplotlib.pyplot as plt
from mlxtend.plotting import scatterplotmatrix
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/rasbt/'
'python-machine-learning-book-3rd-edition/'
'master/ch10/housing.data.txt',
header=None,
sep='\s+')
df.columns = ['CRIM', 'ZN', 'INDUS', 'CHAS',
'NOX', 'RM', 'AGE', 'DIS', 'RAD',
'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
cols = ['LSTAT', 'INDUS', 'NOX', 'RM', 'MEDV']
# 선점도 행렬 그리기
scatterplotmatrix(df[cols].values, figsize=(10, 8),
names=cols, alpha=0.5)
plt.tight_layout()
plt.show()
변수 간의 선형 관계를 정량화, 요약
피어슨의 상관관계 계수(Pearson product-moment correlation coefficient)
를 포함하는 정방 행렬
상관관계 계수는 [-1,1] 범위의 값
두 feature
사이의 공분산을 표준편차의 곱으로 나눈 것
MLxtend
의 heatmap
함수로 상관관계 행렬을 그리는 예제corroef
함수 : 상관계수를 계산하여 반환하는 numpy 함수import numpy as np
from mlxtend.plotting import heatmap
cm = np.corrcoef(df[cols].values.T) # 상관관계 계산
hm = heatmap(cm, row_names=cols, column_names=cols) # 행렬을 시각화
plt.show()