[초보자 대상] 주성분 분석(PCA)은 도대체 뭘 하는 거야?(이론편)

개시하다
다음은 주성분분석(PCA: Principal Component Analysis)의 이론에 대해 설명한다.
구체적인 예는 다음과 같다. 상세한 수학적 의미와 공식 등은 여기.여기. 등을 참조하시오.
파이톤의 설치 방법에 관해서는 기타 기사(실장편)라고 쓰여 있으니 반드시 참조하시기 바랍니다.
※ 머신러닝과 프로그래밍 관련 내용도 별도의 기고가 있으니 가능하면여기. 일람표에 다른 기고가 나와 있었으면 좋겠습니다.
주성분 분석
이어 "주어진 특징량에서 새로운 특징량(주성분)을 만들어 기존 특징량보다 적은 수량의 변수(차원)로 데이터를 설명한다"며 이런 수법은 이해하기 쉽다.문헌에는 다음과 같은 설명이 있다.
  • 차원 삭감(가시화)의 가장 기본적인 방법
  • 다변수 데이터를 더 적은 매개변수 정보로 압축
  • 2차원으로 압축하여 다차원 데이터를 시각화할 수 있음
  • 좌표계의 회전 변환(모방 변환)을 진행하고 더 적은 좌표축으로 데이터를 설명한다
  • 데이터를 낮은 차원 공간에 투영하여 투영된 데이터의 산란을 극대화
  • 무교사 학습의 일종
  • 주성분 분석의 이미지

    변수 1과 변수 2에 설명된 데이터가 있다고 가정해 보세요.(그림의 왼쪽)
    이 데이터에 주성분 분석을 적용하면 신생성 주성분 1과 주성분 2가 된다.(그림 오른쪽)
    주성분 분석 후의 데이터에 관해서는 주성분 1만이 데이터를 잘 설명할 수 있다.이렇게 주성분 분석을 통해 원래 두 변수로 설명했던 데이터는 한 변수로만 설명할 수 있다.2차원이 1차원으로 삭감된 셈이다.이렇게 해서 주성분 분석은 새로운 축(주성분)을 설정함으로써 차원 삭감을 진행한다.
    주성분 분석의 구체적인 예
    화학 파이톤의 데이터 해석, 기계 학습 입문에 알기 쉬운 구체적인 예가 쓰여 있으니 참고하겠습니다.2개의 특징량인 x1, x2의 4개의 데이터로 구성된 데이터 집합을 고려한다.데이터의 내용과 주어진 특징량 공간에서의 데이터의 분포를 표시합니다.


    이 데이터 집합에 대해 주성분 분석을 실시한 후 다음과 같이 각 주성분을 계산한다(이번이라면 제1주성분 t1과 제2주성분 t2)

    제1주성분 t1vs 제2주성분 t2 공간에서 4개의 데이터는 다음과 같다.

    원래 4개의 데이터를 4줄 2열로 하는 행렬 X는 다음과 같다.
    \mathbf{X}\
    =
    \begin{pmatrix}
    x_1^{(1)} & x_2^{(1)} \\
    x_1^{(2)} & x_2^{(2)} \\
    x_1^{(3)} & x_2^{(3)} \\
    x_1^{(4)} & x_2^{(4)}
    \end{pmatrix}
    =
    \begin{pmatrix}
    2 & 2 \\
    1 & -1 \\
    -1 & 1 \\
    -2 & -2
    \end{pmatrix}
    
    또한 두 가지 특징량인 x1, x2의 벡터를 각각 추출하여 다음과 같이 x1, x2로 한다.
    \\
    \mathbf{x}_1\
    =
    \begin{pmatrix}
    x_1^{(1)}  \\
    x_1^{(2)}  \\
    x_1^{(3)}  \\
    x_1^{(4)} 
    \end{pmatrix}
    =
    \begin{pmatrix}
    2  \\
    1  \\
    -1 \\
    -2
    \end{pmatrix}
    
    \\
    \mathbf{x}_2\
    =
    \begin{pmatrix}
    x_2^{(1)}  \\
    x_2^{(2)}  \\
    x_2^{(3)}  \\
    x_2^{(4)} 
    \end{pmatrix}
    =
    \begin{pmatrix}
    2  \\
    -1  \\
    1 \\
    -2
    \end{pmatrix}
    
    여기에 t를 $t=x로 설정합니다1p_1+x_2p_2달러처럼 특징량 x1, x2의 선형 조합으로 표시하면 t는 다음과 같은 새로운 축이다.

    p1, p2로 표시된 선형 조합의 무게를 로드라고 한다.또한 그림에서 각 견본이 t축의 하선을 할 때의 t축의 좌표를 득점이라고 한다.득점의 제곱과 가장 큰 t축을 제1주성분축이라고 부른다.분수의 제곱과 최대화는 분산의 최대화를 의미하기 때문에 정보(데이터의 편차)를 최대한 많이 표현할 수 있는 축이 필요하다.상세한 계산은 생략되었지만 적재에 제한 조건을 설정하고 라그랑일의 미정 곱셈법을 사용하여 p1, p2를 찾았다.계산 결과는 다음과 같다.
    \\
    \mathbf{p}_1\
    =
    \begin{pmatrix}
    \frac{1}{\sqrt2}  \\
    \frac{1}{\sqrt2}
    \end{pmatrix}
    
    \\
    \mathbf{p}_2\
    =
    \begin{pmatrix}
    -\frac{1}{\sqrt2}  \\
    \frac{1}{\sqrt2}
    \end{pmatrix}
    
    따라서 제1주성분 t1과 제2주성분 t2는 원래의 특징량 x1을 사용하고 x2는 다음과 같다.
    t_1=\frac{1}{\sqrt2}x_1+\frac{1}{\sqrt2}x_2 \\
    t_2=-\frac{1}{\sqrt2}x_1+\frac{1}{\sqrt2}x_2 \\
    
    sample1(x1,x2)=(2,2)의 첫 번째 주성분 t1의 점수를 구할 때 다음과 같다.
    \begin{align}
    t_1&=\frac{1}{\sqrt2}×2+\frac{1}{\sqrt2}×2 \\
    &=2.82
    \end{align}
    
    공헌도 정보
    표현할 수 있는 정보량의 비율은 공헌률을 나타낸다.공헌률은 0에서 1까지의 값을 취하고 공헌률이 1이면 모두 원래의 특징량으로 표시된 정보를 나타낸다.기여율은 주성분의 분산을 전체 정보량으로 나누어 계산한다.
    여기서 예를 들어 원래의 특징량이 8개의 데이터에 대한 주성분 분석을 고려해 보자.주요 성분의 수량은 최소 1개, 최대 원래의 특징량과 같은 수량의 8개다.주성 점수가 8시면 원래의 정보량을 모두 나타낼 수 있기 때문에 누적된 기여율은 1로 정보의 손실이 없다.주성분 분석 결과 다음과 같은 두 가지 유형의 결과가 나왔다.
         
    주성분에 대한 기여도를 그리는 도표를 표시합니다.
       
    왼쪽 모드에서 주성분수 2의 누적 공헌률은 0.9이고 오른쪽의 예에서 주성분수는 6으로 누적 공헌률은 0.9에 달한다.즉, 왼쪽 패턴이 적은 특징량수(주성분수)는 더 많은 정보량을 나타낼 수 있어 주성분 분석을 통해 차원을 효과적으로 삭감할 수 있음을 알 수 있다.(주성분 분석에서 누적 기여율이 0.9 정도에 도달하기 전에 주성분을 선택하는 기준 등이 있다)
    주성분 분석을 잘 못 하는 장면.
    ① 데이터가 여러 클러스터로 구성된 경우
    주성분 분석에서 좌표축의 회전을 진행하다.예를 들어 데이터가 A 그룹과 B 그룹으로 구성된 경우 어느 그룹에나 동일한 축의 회전이 적용됩니다.따라서 여러 그룹(집합)으로 구성된 데이터는 주성분 분석을 통해 가시화되지 않을 수 있다.이런 상황에서 각 그룹이 주성분 분석을 하는 것은 적절하다고 여겨진다.
    ②특징량 사이에 비선형 관계가 있을 경우
    주성분 분석은 원래 특징량의 선형 변환을 통해 새로운 특징량(주성분)을 생성한다.따라서 원래의 특징량 사이에 비선형 관계가 존재하면 주성분 분석을 통해 가시화를 잘 할 수 없을 것이다.비선형의 차원 삭감 수법으로는 t-SNE(t-distributed stock hastic neighbor embedding)법과 GTM(generative topographic mapping) 등이 있다.
    ③ 데이터가 표준화되지 않은 경우
    만약 원래의 특징량이 표준화되지 않았다면(평균치=0, 표준편차=1의 조작) 주성분 분석을 통해 잘 가시화되지 못했을 것이다.
    또한 ③의 표준화에 관하여 여기.에서 이유를 설명하였으며 다음은 인용한다.
    PCA에서는 분산을 극대화하기 위해 주성분 축이 결정되는데, 그렇게 하긴 하지만 실제 주성분 점수를 제곱·최대화하는 것이다.각 값에서 평균치의 방차 제곱을 빼고 덧붙여서 마지막으로 (견본수-1)로 방차를 계산한다.제곱과 다르다.주성분 분산의 최대화와 주성분 점수의 제곱과 최대화에 동의하기 위해 주성분의 평균치는 반드시 0이어야 한다.주성분의 평균치가 0이면 분산은 주성분 점수의 제곱과 나누기(샘플 수-1)로 나뉘기 때문에 (샘플 수-1) 최대화와 상관없이 주성분의 분산 최대화 = 주성분 점수의 제곱과 최대화.주성분은 변수의 선형 조합(가재는 결합의 무게)에 의해 표시되기 때문에 모든 변수의 평균치가 0이면 주성분의 평균치도 0이다.주성분의 평균치가 0이기 때문에 변수를 감지해야 한다.
    또한 여기.에서 주성분 분석 시 데이터 표준화에 대해 논의하여 참고로 삼았다.
    총결산
    주성분분석(PCA)의 이론을 설명한다.주성분 분석은'기존 특징량에서 새로운 특징량(주성분)을 만들어 기존 특징량보다 적은 양의 변수(차원)로 데이터를 설명하는 방법'이다.다차원 데이터의 차원 삭감과 가시화에 도움이 된다.
    참고 자료
  • PCA 이해하기(주성분 분석)(이론 편)
  • 뜻을 이해하는 주요 성분 분석
  • "기계 학습의 정수"
  • "실무 자료 정보"
  • "화학 파이톤의 데이터 해석, 기계 학습 입문"
  • 데이터화학공학연구실(금자연구실) @明治대학 이공학부 응용화학과
  • 주성분 분석에서 표준 편차를 제외해야 합니까?의론
  • 좋은 웹페이지 즐겨찾기