PCA의 선형대수학

R로 배우는 데이터 과학을 위한 선형대수

Eric Eager

Data Scientist at Pro Football Focus

이론

행렬 $A^T$는 $A$의 전치행렬로, $A$의 행과 열을 맞바꿔 만든 행렬입니다.

데이터셋이 행렬 $A$에 있고, 각 열의 평균을 그 열의 각 원소에서 뺐다면,

$$\frac{A^TA}{n - 1}$$

에서 $n$은 $A$의 행수이며, 이 행렬의 $i,j$번째 원소는 행렬의 데이터에서 $i$번째 열과 $j$번째 열 변수 간의 공분산입니다.

따라서 $\frac{A^TA}{n - 1}$의 대각선의 $i$번째 원소는 해당 행렬의 $i$번째 열의 분산입니다.

R로 배우는 데이터 과학을 위한 선형대수

이론

print(A)
     [,1] [,2]
[1,]    1    2
[2,]    2    4
[3,]    3    6
[4,]    4    8
[5,]    5   10
A[, 1] <- A[, 1] - mean(A[, 1])
A[, 2] <- A[, 2] - mean(A[, 2]) 
print(A)
     [,1] [,2]
[1,]   -2   -4
[2,]   -1   -2
[3,]    0    0
[4,]    1    2
[5,]    2    4
R로 배우는 데이터 과학을 위한 선형대수

이론

t(A)%*%A/(nrow(A) - 1)
     [,1] [,2]
[1,]  2.5    5
[2,]  5.0   10
cov(A[, 1], A[, 2])
5
var(A[, 1])
2.5
var(A[, 2])
10
R로 배우는 데이터 과학을 위한 선형대수

PCA

  • $\frac{A^TA}{n - 1}$의 고유값 $\lambda_1, \lambda_2, ... \lambda_n$은 실수이며, 해당 고유벡터들은 서로 직교합니다.

  • 데이터셋의 총분산은 $\frac{A^TA}{n - 1}$의 고유값 합입니다.

  • 이 고유벡터 $v_1, v_2, ..., v_n$을 행렬 $A$의 데이터셋의 주성분이라 합니다.

  • $v_j$가 가리키는 방향은 데이터셋 총분산 중 $\lambda_j$를 설명합니다. $\lambda_j$ 또는 $\lambda_1, \lambda_2, ... \lambda_n$의 일부가 총분산의 상당 부분을 설명하면 차원 축소가 가능합니다.

R로 배우는 데이터 과학을 위한 선형대수

예시

eigen(t(A)%*%A/(nrow(A) - 1))
eigen() decomposition
$`values`
[1] 12.5  0.0

$vectors
          [,1]       [,2]
[1,] 0.4472136 -0.8944272
[2,] 0.8944272  0.4472136
R로 배우는 데이터 과학을 위한 선형대수

연습해 봅시다!

R로 배우는 데이터 과학을 위한 선형대수

Preparing Video For Download...