ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 차원축소(Dimension Reduction)
    기계학습이론과실습 2022. 5. 16. 16:00

    feature의 수가 너무 많을 경우

    지도학습: 과적합 문제

    비지도학습: 데이터 포인트들 간의 거리가 유사하게 됨 -> 군집화 결과가 좋지 않음

    = 차원의 저주(curse of dimensionality)

     

    feature selection:

    원래의 features 중에서 일부만 선택

    선택되지 않은 features가 갖고 있는 정보를 최종 분석에서 사용하지 못함

     

    feature extraction:

    원래 features가 가지고 있는 정보를 사용하여 새로운 features 추출

    PCA(Principal Component Analysis)는 feature extraction의 한 방법

    * PC는 독립변수들이 가지고 있는 정보를 설명하는 축


    먼저 고유값과 고유벡터에 대해 알아보겠다. (eigenvalue, eigenvector)

    Av = λv

    (A: n x n 행렬, v: n x 1 벡터, λ: 스칼라 값, v != 0)

    고유벡터의 기하학적 의미: 행렬 A에 의해 선형변환되는 경우 방향은 바뀌지 않고 길이만 바뀌는 벡터

    (A-λI)v = 0 (v != 0)이라면  A-λI의 역행력은 존재하지 않으므로 det(A-λI) = 0

    A = [[a, b], [c, d]]라고 하면 det(A-λI) = λ^2 -(a+d)λ +ad-bc = 0

    이차방정식이므로 고유값은 2개, 이에 따른 고유벡터 수는 무수히 많을 수 있지만, 보통 길이가 1인 고유벡터를 선택

    이때, det(A) = λ1 * λ2, tr(A) = λ1 + λ2임을 확인할 수 있다.

    ** 대칭행렬의 고유벡터는 서로 수직이므로 두 고유벡터의 내적은 0이다**

     

    다음으로 고유분해에 대해 알아보겠다. (eigendecomposition)

    A = VΛV^-1

    (A: n x n 정사각행렬, V: A의 고유벡터들을 열로 갖는 행렬, Λ: 고유값들을 대각성분으로 갖는 대각행렬)

    AV = [Av1 Av2] = [λ1v1 λ2v2] = VΛ

    A = VΛV^-1 (V의 역행렬 존재)
    1) A변환이 여러 번 수행되는 경우 A^k = VΛ^kV^-1로 간단하게 계산 가능

    2) PCA 차원 축소를 위해 고유값과 고유행렬이 사용됨


    Principal Component Analysis (주성분 분석)

    Principal Component는 원 데이터의 정보/분산을 설명하는 축/벡터이며, 전체 PC의 수는 전체 독립변수의 수와 동일하다. 각 PC에 의해 설명되는 분산의 크기가 다르기에 분산을 많이 설명하는 일부 PC를 새로운 feature로 선택할 경우, feature의 수를 줄이면서 원 데이터가 갖고 있는 정보의 대부분을 유지하는 것이 가능하다. 각 PC는 서로 수직이라는 특징을 갖는다.

     

    PC를 찾는 방법은 다음과 같다.

    1. mean centering

    * 원값 - 평균

    2. 원데이터에 대한 공분산 행렬 도출

    * 공분산 행렬은 정사각행렬(k x k, where k = number of features)이자 대각행렬

    * 대각행렬 -> 고유벡터끼리 수직

    3. 공분산 행렬에 대해 고유값과 고유벡터 찾기

    * ΣVar(X) = Σλ (원데이터 분산의 합 = 고유값의 합, 즉 고유값은 해당 고유벡터에 의해 설명되는 분산의 크기를 의미함)

    * PC = eigenvector V

    4. 설명력 높은 PC 선택

    * scree plot 사용

    5. 새로 구한 PC에 대해 각 관측치의 새로운 값 구하기 

    * projection vector를 활용하여 도출

    * 새로운 관측치들 = 원데이터 벡터(centered_d)와 고유벡터의 내적

     

    특이값 분해는 다음과 같다.

    특이값 분해(Singular Values Decomposition: SVD)는 고유분해(eigendecomposition)와 비슷하지만, 고유분해는 정사각행렬에 대해서만, 특이값 분해는 다른 형태의 행렬에 대해서도 사용 가능하다는 차이점이 있다.

    X = UDV^T

    where X = m x n matrix,

    U = eigenvectors of XX^T,

    V = eigenvectors of X^TX,

    D = root(eigenvalues of X^TX or XX^T except 0)

    '기계학습이론과실습' 카테고리의 다른 글

    GMM (Gaussian Mixture Models)  (0) 2022.06.14
    SVM (Support Vector Machines)  (0) 2022.05.30
    Ensemble methods  (0) 2022.05.11
    Decision Tree  (0) 2022.05.04
    Clustering  (0) 2022.05.04

    댓글

Designed by Tistory.