Covariance Matrix

Min·2021년 10월 18일

인공지능 수학

목록 보기
1/4

필요한 라이브러리 : numpy

import numpy as np

X를 n d 크기의 matrix 라고 하자.
내부 원소는 d개의 변수 x_i ( n
1 vector )로 이루어져 있다.

-열 : 데이터 속성 변수
-행 : 데이터 값 (속성1, 속성2, ..., 속성d) ( jointly distributed)

속성 변수들의 Covariance Matrix를 구해보자.

np.cov(X, rowvar=False)

여기서 X는 행이 변수이므로 열이 변수라는 rowvar는 False로 해주어야 한다.

정확한 variance 값을 구하기 위해 표본개수-1 (n-1)로 variance를 구하는 것을 Bessel Correction이라고 한다.

Bessel Correction이 적용되지 않는 Covariance Matrix를 구해보자
(즉, np.cov 함수의 기본 설정은 bias=False 이다.)

np.cov(X, rowvar=False, bias=True)

Bessel Correction을 적용하지 않겠다는건 bias (편차)를 허용한다는 뜻이다.

Covariance Matrix K의 특성
1. Symmetric : K^(transpose) = K
2. positive semidefinite : x^(transpose) K x >=0
3. (i,j) 는 x_i 와 x_j의 covariance 값
-(i,j) > 0 : 양의 상관관계, 기울기가 양수
-(i,j) < 0 : 음의 상관관계, 기울기가 음수
4. x_i 와 x_j가 독립이라면 Cov값은 0
5. (i,i)는 x_i의 분산값 (항상 >=0)

Sample X의 Sample Covariance Matrix K구하기
1. X의 각 열의 mean(평균)값을 계산하여 빼준다.
-> 이러한 matrix를 Z라고 지칭하자.
2. 그럼 K = Z^(transpose) Z

0개의 댓글