게시일: 2023년 12월 8일
주성분 분석, 즉 PCA(Principal Component Analysis)는 대규모 데이터 세트의 차원 수를 원본 정보의 대부분을 유지하는 주성분으로 줄여줍니다. PCA는 잠재적으로 상관관계가 있는 변수를 주성분이라고 하는 더 작은 변수 집합으로 변환하여 대규모 데이터 세트의 차원 수를 줄입니다.
1901년 칼 피어슨(Karl Pearson)이 PCA를 개발한 것으로 알려져 있지만, PCA는 컴퓨터의 보급이 확대되어 대규모 다변량 통계 계산1이 가능해지자 본격적으로 인기를 얻게 되었습니다. PCA는 추세, 패턴 또는 이상값을 쉽게 식별할 수 있으므로 고차원 데이터 세트나 많은 특성을 가진 데이터를 시각화하고 탐색하는 데 매우 효과적입니다.
PCA는 일반적으로 머신 러닝 알고리즘에 사용하기 위한 데이터 전처리에 사용됩니다. 초기 데이터 세트에서 가장 관련성이 높은 정보를 보존하면서 대규모 데이터 세트에서 가장 유익한 특성을 추출할 수 있습니다. 새로운 특성이 추가될 때마다 모델 성능에 부정적인 영향을 주게 되며, 이는 흔히 '차원의 저주'라고 불립니다. 반면 PCA를 사용하면 모델 복잡성을 줄일 수 있습니다. PCA는 고차원 데이터 세트를 더 작은 특성 공간에 투영함으로써 다중 상관성 및 과적합과 같은 일반적인 문제를 최소화하거나 완전히 제거합니다. 다중 상관성은 두 개 이상의 독립 변수가 서로 높은 상관관계를 가질 때 발생하며, 이는 인과 관계 모델링에서 문제가 될 수 있습니다. 과적합 모델은 새로운 데이터에 대한 일반화가 제대로 이루어지지 않아 그 가치가 완전히 떨어집니다. PCA는 회귀 분석에서 일반적으로 사용되는 접근 방식이지만 패턴 인식, 신호 처리, 이미지 처리 등과 같은 다양한 사용 사례에도 활용됩니다.
주성분 회귀와 커널 PCA와 같은 다른 변형된 PCA도 있지만, 이 글에서는 현재 문헌에 나와 있는 주요 방법에 중점을 두고 설명하겠습니다.
PCA는 선형 판별 분석(LDA)과 같은 차원 축소 기법입니다. LDA와 달리 PCA는 지도 학습 작업에만 국한되지 않습니다. 즉, 비지도 학습 작업의 경우 클래스 레이블이나 카테고리를 고려하지 않고도 차원을 줄일 수 있습니다. PCA는 요인 분석과도 밀접한 관련이 있습니다. PCA와 요인 분석 모두 데이터 세트의 차원 또는 변수 수를 줄이면서 정보 손실을 최소화합니다. PCA는 변수를 선형적으로 독립적인 주성분들의 하위 집합으로 분류합니다. 그러나 요인 분석은 일반적으로 변수의 확산을 포착하는 잠재 변수 또는 측정되지 않은 요인에 초점을 맞춰 기본 데이터 구조를 이해하는 데 사용됩니다.
PCA와 k-평균 클러스터링은 모두 데이터 분석에 사용되는 비지도형 머신 러닝 기법이지만, 목표와 방법에 차이가 있습니다. PCA는 데이터의 차원을 줄이는 데 사용되는 반면, k-평균 클러스터링은 유사성을 기준으로 데이터 포인트를 그룹화합니다. 어떤 기법을 선택할지는 특정 데이터 세트와 분석 목표에 따라 달라집니다.
PCA는 원래 변수의 선형 조합인 주성분과 같은 새로운 변수를 생성합니다. PCA는 여러 변수가 있는 데이터 세트를 입력으로 받아 더 낮은 하위 공간, 즉 변수가 적은 축소된 데이터 세트로 데이터 세트를 생성합니다. PCA는 예측 모델 구축을 위한 탐색적 데이터 분석에 주로 사용되지만 차원 축소를 위한 데이터 전처리에도 사용됩니다.
k-평균은 클러스터 중심으로부터의 거리에 따라 데이터 포인트를 클러스터에 할당하는 클러스터링 알고리즘입니다. 하나 이상의 변수가 포함된 데이터 세트를 입력으로 받아 유사한 데이터 포인트가 있는 클러스터 집합을 생성합니다. 이미지 세분화, 고객 세분화, 이상 징후 감지 등 다양한 사용 사례에 대한 데이터를 클러스터링하는 데 자주 사용됩니다.
IDC MarketScape: Worldwide AI Governance Platforms 2023년 보고서를 읽고 IBM이 선도기업으로 선정된 이유를 알아보세요.
AI 거버넌스 백서 등록
PCA는 대규모 데이터 세트의 정보 내용을 주성분이라고 하는 상관되지 않은 더 작은 변수 집합으로 요약합니다. 이러한 주성분은 원본 변수의 선형 조합으로, 다른 선형 조합에 비해 최대 분산을 갖습니다. 또한 원본 데이터 세트에서 가능한 한 많은 정보를 캡처합니다.
PCA 통계 기법은 선형 대수와 행렬 연산을 모두 포함하며, 원본 데이터 세트를 주성분으로 구조화된 새로운 좌표계로 변환합니다. 주 성분을 뒷받침하는 공분산 행렬의 고유 벡터와 고유값을 통해 이러한 선형 변환을 분석할 수 있습니다.
여러 특성을 가진 데이터 세트를 매핑하여 다차원 산점도로 만들었다고 가정해 보겠습니다. 고유 벡터는 산점도에서 분산 방향을 제공합니다. 고유값은 고유 벡터의 계수로, 이 방향 데이터의 중요성을 나타냅니다. 따라서 고유값이 높다는 것은 해당 고유 벡터가 더 중요하다는 것을 의미합니다. 주성분은 데이터의 최대 분산 방향을 나타내므로 공분산 행렬의 고유 벡터이기도 합니다.
PCA에서는 첫 번째 주성분(PC1)과 두 번째 주성분(PC2) 이렇게 두 가지 주요 성분이 계산됩니다.
첫 번째 주성분(PC1)은 공간에서 데이터 포인트의 분산이 가장 크거나 가장 큰 방향을 나타내며, 투영된 포인트의 모양을 가장 잘 나타내는 선입니다. 첫 번째 주성분에서 포착된 변동성이 클수록 원본 데이터 세트에서 유지되는 정보가 더 커집니다. 다른 주성분은 더 높은 변동성을 가질 수 없습니다.
두 번째 주성분(PC2)은 PC1과 같은 방식으로 계산됩니다. PC2는 데이터 세트에서 두 번째로 높은 분산도를 차지하며, PC1과 상관관계가 없어야 합니다. 다시 말해, PC2는 PC1과 직교, 즉 수직이어야 합니다. 이 관계는 PC1과 PC2의 상관관계가 0이라고 표현할 수도 있습니다.
산점도는 일반적으로 데이터 세트에 PCA를 적용할 때 PC1과 PC2 사이의 관계를 표시하는 데 사용됩니다. PC1 축과 PC2 축은 서로 수직이 됩니다.
후속 성분이 있는 경우에도, 다른 성분과 상관관계가 없으며 데이터 세트의 나머지 변동을 설명할 수 있다는 동일한 속성을 유지합니다.
Python으로 PCA를 적용하여 데이터 세트의 차원을 줄이는 방법을 알아보세요.
PCA 계산 프로세스는 아래 단계에 요약되어 있으며, 주성분이 계산되는 방법과 원본 데이터와의 관계를 보여줍니다.
PCA는 특정 특성에 편향될 수 있으므로 데이터의 정규화가 필요한지 여부를 평가하는 것이 중요합니다. 데이터는 평균이 0이고 표준 편차가 1인 정규 분포를 반영해야 합니다.
이 단계에서는 각 변수가 분석에 동등하게 기여하도록 변수의 평균값을 계산하여 원본 데이터 세트에서 뺍니다. 그런 다음 이 평균값을 각 변수의 표준 편차로 나누어 모든 변수가 동일한 척도를 사용하도록 합니다.
공분산(cov)은 두 개 이상의 변수가 얼마나 강한 상관관계가 있는지 측정합니다. 공분산 행렬은 데이터 세트에 있는 초기 변수의 모든 쌍 조합과 관련된 공분산을 요약합니다. 공분산 행렬을 계산하면 변수 간의 관계, 즉 변수가 서로에 대해 평균에서 어떻게 달라지는지 파악하는 데 도움이 됩니다. 이 데이터 행렬은 대칭 행렬이며, 변수 조합을 d × d로 나타낼 수 있으며 여기서 d는 차원 수입니다. 예를 들어 3차원 데이터 세트의 경우 공분산 행렬에는 3 × 3 또는 9개의 변수 조합이 있습니다.
행렬에 있는 변수의 부호는 조합이 다음과 같은 상관관계가 있는지 여부를 알려줍니다.
여기서는 공분산 행렬의 고유 벡터(주성분)와 고유값을 계산합니다. 고유 벡터는 주성분으로서 데이터의 최대 분산 방향을 나타냅니다. 고유값은 각 성분의 분산 정도를 나타냅니다. 고유값을 기준으로 고유 벡터의 순위를 매기면 주성분의 순서를 파악할 수 있습니다.
여기서 어떤 성분을 유지하고 어떤 성분을 버릴지 결정합니다. 고유값이 낮은 성분은 일반적으로 그다지 중요하지 않습니다. 일반적으로 스크리 도표는 설명된 총 분산 비율과 누적 분산 비율을 표시합니다. 이러한 메트릭은 유지해야 할 최적의 성분 수를 결정하는 데 도움이 됩니다. 고유값 또는 설명된 총 분산의 Y축이 '엘보우'를 만드는 지점은 일반적으로 포함할 PCA 성분의 수를 나타냅니다.
마지막으로, 데이터는 주성분으로 정의된 새로운 좌표계로 변환됩니다. 즉, 공분산 행렬의 고유 벡터에서 생성된 특성 벡터가 주성분으로 정의된 새 축에 데이터를 투영합니다. 이렇게 하면 대부분의 정보를 캡처하지만 원본 데이터 세트보다 더 적은 차원을 가진 새로운 데이터가 생성됩니다.
PCA 도표는 처음 두 주성분을 축으로 사용하여 생성된 산점도입니다. 첫 번째 주성분(PC1)은 x축이고 두 번째 주성분(PC2)은 y축입니다. 산점도는 관측값(데이터 포인트)과 새 변수(주성분) 간의 관계를 보여줍니다. 각 점의 위치는 해당 관측값에 대한 PC1 및 PC2 값을 나타냅니다.
도표 화살표의 방향과 길이는 변수의 부하, 즉 각 변수가 주성분에 기여하는 방식을 나타냅니다. 특정 성분에 대한 변수의 부하가 높으면 해당 성분과 강한 상관관계가 있는 것입니다. 이를 통해 어떤 변수가 데이터 변동에 중요한 영향을 미치는지 강조할 수 있습니다.
PCA를 적용한 후 남은 주성분 수는 데이터 출력을 해석하는 데 도움이 될 수 있습니다. 첫 번째 주성분은 가장 많은 데이터 변동을 설명하며, 그 이후의 각 주성분은 더 적은 변동을 설명합니다. 따라서 성분의 수는 원본 데이터 세트에서 유지되는 정보의 양을 나타낼 수 있습니다. PCA를 적용한 후 성분 수가 적다는 것은 데이터 변동을 많이 포착하지 못했다는 의미일 수 있습니다. 성분 수가 많을수록 더 많은 데이터 변동을 나타내지만 결과를 해석하기가 더 어려울 수 있습니다. 스크리 도표 또는 누적 설명 분산도를 사용하여 유지할 최적의 성분 수를 결정할 수 있습니다.
주성분 분석을 적용하면 변수가 많은 데이터 세트에서 가장 유용한 특성을 사전 처리하거나 추출하는 데 도움이 될 수 있습니다. 전처리는 관련 정보를 보존하면서 복잡성을 줄입니다. PCA를 사용하는 일반적인 시나리오는 다음과 같습니다.
PCA는 필수 정보를 유지하면서 이미지 크기를 줄입니다. 이미지를 간결하게 표현하여 저장 및 전송이 용이하도록 도와줍니다.
PCA는 고차원 데이터를 2차원 또는 3차원 도표와 같은 저차원 공간에 투영하여 시각화하는 데 도움이 됩니다. 이를 통해 데이터 해석과 탐색을 간소화할 수 있습니다.
PCA는 기본 패턴을 포착하는 주성분에 집중하여 데이터에서 노이즈나 중복 정보를 제거할 수 있습니다.
PCA는 의료 분야에서도 활용되고 있습니다. 예를 들어, 질병을 더 일찍, 더 정확하게 진단하는 데 도움을 주고 있습니다. 논문 '로지스틱 회귀를 이용한 주성분 분석을 통한 유방암 예측'은 매디슨 위스콘신 대학교 병원에서 환자들로부터 수집되어 널리 사용 중인 유방암 데이터 세트2(ibm.com 외부 링크)를 분석합니다. 이 연구의 저자인 아크바(Akbar)는 PCA를 사용하여 6가지 데이터 속성의 차원을 줄였습니다.
그런 다음 지도 학습 분류 알고리즘인 로지스틱 회귀분석을 적용하여 유방암의 존재 여부를 예측했습니다.
선형 판별 분석, 랜덤 포레스트, 균일 매니폴드 근사 및 투영(UMAP), t-분포 확률적 이웃(t-SNE) 등 다양한 차원 축소 기법을 사용할 수 있습니다. PCA가 자신의 분석에 적합한 접근 방식인지 결정하려면 다음 요소를 고려하세요.
AI로 작업하는 방식을 새롭게 상상해 보세요. 20,000여 명의 다양한 글로벌 AI 전문가로 구성된 IBM 팀은 비즈니스 전반에 걸쳐 AI 및 자동화를 신속하고 자신 있게 설계하고 확장할 수 있도록 지원합니다. 자체 IBM watsonx 기술과 파트너사의 개방형 에코시스템을 통해 모든 클라우드에서 모든 AI 모델을 윤리와 신뢰에 기반하여 제공합니다.
비즈니스 전반에 AI를 구현하여 신속하고 윤리적인 이점을 제공합니다. IBM의 광범위한 비즈니스 등급 AI 제품 및 분석 솔루션 포트폴리오는 AI 도입 장벽을 낮추고 적절한 데이터 기반을 구축하는 동시에 결과와 윤리적인 사용을 최적화하도록 설계되었습니다.
IBM의 차세대 AI 및 데이터 플랫폼으로 AI의 역량을 강화하세요. IBM watsonx는 비즈니스용 툴, 애플리케이션 및 솔루션 포트폴리오입니다. AI 도입에 따른 비용과 장애물을 줄이면서 결과를 최적화하고 AI의 책임 있는 사용을 최적화하도록 설계되었습니다.
데이터 과학 커뮤니티에서 PCA 결과의 성분 행렬과 성분 도표의 관계에 대해 자세히 알아보세요.
분산 및 스트리밍 계산 모델에서 주성분 분석(PCA) 문제에 대해 연구한 논문입니다.
다양한 데이터 전처리 접근 방식으로 모델과 예측을 개선하는 방법을 알아보세요.
Python으로 PCA를 적용하여 데이터 세트의 차원을 줄입니다.
R로 PCA를 적용하여 데이터 세트의 분류를 최적화합니다.