Python/Analysis

[Analysis] PCA - 주성분 분석

gangee 2024. 3. 18. 14:37

목차

    728x90
    반응형

    PCA(Principal Component Analysis)

    • 고차원 데이터 집합이 주어졌을 때 원래의 고차원 데이터와 가장 비슷하면서 더 낮은 차원 데이터를 찾아내는 방법
    • 차원 축소 문제를 해결하는 알고리즘 중 하나
    • 선형 회귀와 완전히 다른 알고리즘
    • 머신러닝, 데이터마이닝, 통계분석, 노이즈 제거 등 다양한 분야에서 널리 쓰임

    수학적 의미

    • 데이터가 직교 투영할 때 정과 표면 사이의 거리의 제곱의 합이 최소가 되는 더 낮은 차원의 표면 또는 직선을 찾는 것
    1. n차원 데이터 -> k차원 데이터로 축소 (k <= n)
    2. 데이터를 투영할 더 낮은 차원을 찾아 직교 투영
    3. 투영 오차의 제곱 최소화

    선형 회귀와 비교

    1. 선형 회귀
      • 피처 x가 주어진 경우 변수 y의 값 예측
      • 점과 직선 사이의 오차 제곱 최소화
      • 점과 가설로 예측된 값 사이의 수평축에 수직인 거리에 제곱 평균
    2. PCA
      • 레이블 y는 없고 모든 피처를 동일하게 취급
      • 점과 직선 사이의 가장 짧은 거리인 90도로 직교하는 파란색 선분을 최소화
      • 점 x와 선 사이의 직교하는 다른 선분은 둘 사이의 최단거리

    알고리즘 구현 방식

    1. 데이터 전처리
    2. 공분산 행렬 시그마를 벡터화로 구현
    3. 공분산 행렬을 적용하여 행렬 분할
    4. 차원 축소 진행
    5. z방향으로 직교 투영한 값 구함

    파라미터 K 결정 방법

    • 분산 : 데이터가 평균으로부터 얼마나 떨어져 있는 지를 나타내는 값들의 제곱 평균
    • n차원 데이터와 k차원 데이터가 거의 비슷한 분산을 유지할 수 있는 K 값 선택
    728x90
    반응형

    'Python > Analysis' 카테고리의 다른 글

    [Analysis] CNN  (0) 2024.04.11
    [Analysis] MLP - 다층 퍼셉트론  (0) 2024.03.25
    [Analysis] Machine Learning 이란?  (0) 2023.12.27
    [Analysis] Naive Bayes를 이용한 데이터 분석  (0) 2022.11.20
    [Analysis] scikit-learn 선형회귀분석  (0) 2022.11.08