[ML] 탐색적 데이터 분석(EDA) - 선점도 행렬, 상관관계 행렬

Woong·2023년 9월 11일
0

Python / Machine Learning

목록 보기
19/20

탐색적 데이터 분석 (Exploratory Data Analysis, EDA)

  • 수치 요약시각화를 사용하여 데이터를 탐색하고 변수 간 잠재적 관계를 찾아내는 프로세스
  • 이상치(outlier) 감지, 데이터 분포를 시각화, feature 간 관계를 나타내는데 사용

선점도 행렬 (scatterplot matrix)

  • 데이터셋의 feature 간 상관관계를 시각화

  • ex) MLxtend 라이브러리의 scatterplotmatrix 함수 등을 이용해 산점도 행렬 시각화

    • RM, MEDV 사이의 선형적인 관계 (맨아래 4번째)
    • MDEV 는 정규 분포 형태 (맨아래 5번째)
      • (+약간의 outlier)
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()

상관관계 행렬 (correlation matrix)

  • 변수 간의 선형 관계를 정량화, 요약

  • 피어슨의 상관관계 계수(Pearson product-moment correlation coefficient)를 포함하는 정방 행렬

  • 상관관계 계수는 [-1,1] 범위의 값

    • 0일 경우 상관관계가 없는 것
  • feature 사이의 공분산을 표준편차의 곱으로 나눈 것

  • r=i=1n[(x(i)μx)(y(i)μy)]i=1n(x(i)μx)2i=1n(y(i)μy)2=σxyσxσyr=\frac{\sum_{i=1}^{n}[(x^{(i)}-\mu_x)(y^{(i)}-\mu_y)]}{\sqrt{\sum_{i=1}^{n}{(x^{(i)}-\mu_x)^2}}\sqrt{\sum_{i=1}^{n}(y^{(i)}-\mu_y)^2}} = \frac{\sigma_{xy}}{\sigma_x\sigma_y}

    • μ\mu : feature 의 샘플 평균
    • σxy\sigma_{xy} : feature x,y 사이의 공분산
    • σx\sigma_x, σy\sigma_y: feature의 표준편차
  • MLxtendheatmap 함수로 상관관계 행렬을 그리는 예제
    • corroef 함수 : 상관계수를 계산하여 반환하는 numpy 함수
    • heatmap : 데이터의 값을 열 분포 형태의 컬러로 시각화하여 보여주는 기법
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()

0개의 댓글