많은 차원이 있으면 그 중 일부는 상관 관계가 있습니다. 예를 들어, 장르 차원이 이전 예제의 악기 크기와 상관 관계가 있다고 합리적으로 생각할 수 있습니다. 차원을 줄이는 한 가지 방법은 단순히 그 중 일부만 유지하는 것입니다. 문제는 좋은 정보를 느슨하게한다는 것입니다. 데이터 집합에 있는 모든 정보를 유지하면서 이러한 차원을 줄이는 방법이 있으면 좋을 것입니다. 이제 주요 구성 요소의 의미를 이해되었으므로 고유 벡터와 고유 값으로 돌아가보겠습니다. 당신이 먼저 그들에 대해 알아야 할 것은 모든 고유 벡터가 고유 가치를 가지고 있도록, 그들은 항상 쌍으로 와서 있다는 것입니다. 그리고 그 수는 데이터의 차원 의 수와 같습니다. 예를 들어 3차원 데이터 집합의 경우 3개의 변수가 있으므로 3개의 고유값값을 가진 3개의 고유 벡터가 있습니다. 주 성분을 가진 후, 각 구성 요소에 의해 차지하는 분산 (정보)의 비율을 계산하기 위해, 우리는 고유 값의 합으로 각 구성 요소의 고유 가치를 나눈다. 위의 예제에서 이를 적용하면 PC1과 PC2가 각각 데이터 분산의 96%와 4%를 차지한다는 것을 확인할 수 있습니다. 아래 예제에서는 먼저 인스턴스를 만들고, 3×2 행렬에 피팅하고, 투영의 값과 벡터에 액세스하고, 원래 데이터를 변환하여 이 클래스를 사용하는 것을 보여 줍니다. 예를 들어 2D 데이터 집합(예: 2.9)을 다시 만듭니다.

PCA의 효과를 보려면 두 차원 간의 상관 관계를 소개합니다. 2차원으로 100개의 데이터 점을 만들어 보겠습니다: 예제를 실행하면 먼저 원래 행렬을 인쇄한 다음 중심 공변행렬의 고유 벡터와 고유 값값을 인쇄한 다음 마지막으로 원래 행렬의 투영을 만듭니다. 아래 예제는 작은 3×2 행렬을 정의하고, 행렬의 데이터를 중심으로, 중심 데이터의 공분산 행렬을 계산한 다음 공분산 행렬의 이젠분해화를 계산합니다. 고유 벡터와 고유 값은 주 성분 및 특이값으로 간주되어 원래 데이터를 투영하는 데 사용됩니다. 데이터에 변수가 있는 주 성분만큼 많기 때문에 주 성분은 첫 번째 주 성분이 데이터 집합에서 가능한 가장 큰 분산을 차지하는 방식으로 구성됩니다. 예를 들어, 데이터 집합의 분산형 플롯이 아래와 같이 첫 번째 주성분을 추측할 수 있다고 가정해 보겠습니다. 예, 그것은 원점을 통과하기 때문에 보라색 마크와 일치하는 대략 라인이며 점 (빨간색 점)의 투영이 가장 많이 분산되는 선입니다. 또는 수학적으로 말하자면 분산을 최대화하는 선입니다(투영된 점(빨간색 점에서 원점까지의 제곱 거리의 평균). 따라서 예제에서 보았듯이 원하는 항목에 따라 모든 구성 요소를 유지할지 또는 덜 중요한 구성 요소를 폐기할지 선택하는 것은 당신에게 달려 있습니다. 차원을 줄이려고 하지 않고 상관관계가 없는 새 변수(주 성분)의 관점에서 데이터를 설명하려는 경우 덜 중요한 구성 요소를 제외할 필요가 없기 때문입니다.

공분산 행렬은 초기 변수의 가능한 모든 쌍과 연관된 공분산을 항목으로 포함하는 p ×p 대칭 행렬(여기서 p는 치수)입니다. 예를 들어, 3개의 변수 x, y 및 z가 있는 3차원 데이터 세트의 경우 공분산 행렬은 이 행렬의 3×3 행렬입니다. 초기 변수의 분산입니다. 즉, 초기 변수의 범위 간에 큰 차이가 있는 경우 범위가 큰 변수가 작은 범위(예: 0에서 100 사이의 범위의 변수가 0과 사이 범위의 변수를 지배합니다) 1) 편향된 결과로 이어질 것입니다. 따라서 데이터를 유사한 축척으로 변환하면 이 문제를 방지할 수 있습니다.