Den linjära algebran bakom PCA

Linjär algebra för datavetenskap i R

Eric Eager

Data Scientist at Pro Football Focus

Teori

Matrisen $A^T$, transponeringen av $A$, bildas genom att byta plats på rader och kolumner i $A$.

Om din datamängd finns i en matris $A$ och medelvärdet för varje kolumn har subtraherats från varje element i respektive kolumn, är det $i,j$-te elementet i matrisen

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

där $n$ är antalet rader i $A$, kovariansen mellan variablerna i den $i$-te och $j$-te kolumnen i matrisen.

Det $i$-te diagonalelementet i $\frac{A^TA}{n - 1}$ är alltså variansen för den $i$-te kolumnen i matrisen.

Linjär algebra för datavetenskap i R

Teori

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
Linjär algebra för datavetenskap i R

Teori

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
Linjär algebra för datavetenskap i R

PCA

  • Egenvärdena $\lambda_1, \lambda_2, ... \lambda_n$ för $\frac{A^TA}{n - 1}$ är reella, och motsvarande egenvektorer är ortogonala, det vill säga pekar i olika riktningar.

  • Den totala variansen i datamängden är summan av egenvärdena för $\frac{A^TA}{n - 1}$.

  • Dessa egenvektorer $v_1, v_2, ..., v_n$ kallas datamängdens huvudkomponenter i matrisen $A$.

  • Riktningen som $v_j$ pekar i kan förklara $\lambda_j$ av den totala variansen. Om $\lambda_j$, eller en delmängd av $\lambda_1, \lambda_2, ... \lambda_n$, förklarar en betydande del av den totala variansen finns möjlighet till dimensionsreducering.

Linjär algebra för datavetenskap i R

Exempel

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
Linjär algebra för datavetenskap i R

Nu kör vi en övning!

Linjär algebra för datavetenskap i R

Preparing Video For Download...