개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science)
6장 행렬 응용: 데이터 분석에서의 행렬
ㅇ
다변량 데이터 공분산 행렬
피어슨 상관계수: 두 변수의 상관관계를 나타내는 숫자
(두 변수 벡터 사이의 내적을 두 벡터 노름의 곱으로 나누어 구함)
▶ 변수가 세 개 이상이라면? 다변량 데이터 집합에서는?
공분산(Covariance): 두 평균중심화된 변수 사이의 내적
- 공분산은 데이터 크기가 반영됨(절댓값이 1으로 한정x)
- 정규화 인자로 n-1(n: 데이터 점의 크기)을 사용
정규화 인자 n-1으로 나눔으로써 많은 데이터값을 합할 때마다 공분산이 커지는 것을 방지할 수 있음
(합에서 평균을 구하기 위해 N으로 나누는 것과 유사)
$$ C_{a,b} = (n-1)^{-1}\Sigma_{i=1}^{n} (x_i-\bar{x})(y_i-\bar{y})$$
$\tilde{x}$를 평균중심화된 변수라고 하면, 공분산은 $\frac{\tilde{x}^T\tilde{y}}{(n-1)}$
다중 변수에 대한 공분산의 아이디어
▶ 행렬 곱셈이 왼쪽 행렬의 행과 오른쪽 행렬의 열 사이의 내적들로 이루어진 집합
- 각 변수(feature, 데이터의 특성)을 열에 담은 행렬 $X$를 만듬
- $X^T$와 $X$의 내적을 구한다(X^T의 열 = X의 행 = feature)
- 행렬 곱셈 $X^TX$의 공분산들을 원소로 가지는 행렬이 된다
공분산 행렬
$$C = X^T X \frac{1}{n-1}$$
행렬 $C$는 대칭
- 어떠한 행렬이든 자신의 전치 행렬을 곱하면 정방 대칭이 된다
- 통께적으로 공분산과 상관관계는 대칭관계이다(A와 B의 공분산은 B와 A의 공분산과 같음)
$C$의 대각 원소는 각 변수의 자기 자신에 대한 공분산, 즉 분산이다.
NumPy의 공분산과 상관 행렬을 계산하는 함수 사용 가능: np.cov(), np.corrcoef()
행렬 - 벡터 곱셈을 통한 기하학적 변환
- 행렬-벡터 곱셈의 목적 중 하나는 좌표 집합을 기하학적으로 변환하는 것(선형변환)
'Datascience > Linear Algebra' 카테고리의 다른 글
[개발자를 위한 실전 선형대수학] 직교 행렬과 QR 분해 (0) | 2024.01.27 |
---|---|
[개발자를 위한 실전 선형대수학] 역행렬 (0) | 2024.01.27 |
[개발자를 위한 선형대수학] 행렬의 확장 개념(2) (0) | 2024.01.24 |
1장 연습문제 (1) | 2024.01.22 |
[개발자를 위한 실전 선형대수학] 행렬의 확장 개념(1) (1) | 2024.01.21 |