ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Week 8] Applying PCA
    Courses/Andrew Ng - Machine Learning 2022. 1. 30. 16:12

    Reconstruction from Compressed Representation

     

     차원 축소한 데이터를 다시 원본으로 돌릴 수 있을까요?? Z= UreduceT * X 로 데이터를 변환했었습니다. 따라서 X = Ureduce * Z 를 하면 구할 수 있고 원본 X의 근사값이 됩니다. 이를 재구성(Reconstruction) 이라고 합니다.

     

    Choosing the Number of Principal Components

      PCA의 파라미터 k, 즉 축소할 차원의 수는 어떻게 정해야할까요?

     

     

     

     각 데이터 셋의 원점으로부터의 거리의 평균 분의 투영 오차의 평균을 나눈 값이 0.01 이하가 되도록 설정합니다. PCA에서 이 뜻은 99%의 분산을 유지한다는 뜻입니다. 이 분산을 유지하는 최소의 k를 선택합니다.

     

     

     k를 하나씩 늘려가며 만족하는 최소의 수를 찾을 수 있습니다. 그러나 계산량이 많아집니다.

     다른 방법은, svd함수에서 반환하는 S 행렬을 사용하는 것 입니다. S행렬은 정방행렬이고 대각선 성분을 제외한 나머지 성분이 모두 0입니다. k=3 이라면 1 - (s11+s22+s33 / s11+..snn) 가 0.01보다 작아야 합니다. 이 값을 만족하는 최소한의 k를 선정합니다. 이 방법대로면 한번만 svd 함수를 호출하고 반복되는 계산이 필요 없습니다.

     

    Advice for Applying PCA

     

     

     

     비전 문제를 풀 때 변수가 너무 많기 때문에 PCA를 적용하면 유리합니다. 주의할 점은 PCA는 학습 셋에서만 적용되어야 한다는 점 입니다. Ureduce는 학습 셋에서 PCA를 사용한 결과이기 때문입니다.

     PCA를 모든 문제에 적용하는 것도 옳지 않습니다. 과적합을 방지하기 위해 PCA를 사용하는 경우가 있습니다. feature의 수를 줄이기 때문인데 , 권장하지 않고 정규화를 적용하는 것이 더 올바른 방법입니다.

     

     

     프로젝트를 계획할 때 반드시 PCA를 포함해야 하는 것은 아닙니다. 만일 PCA를 사용하지 않고 제대로 작동되지 않을 때만 PCA를 적용합니다. 따라서 적절한 사용이 요구됩니다.


    혼자서 강의를 듣고 정리한 것이니 틀린 점이 있다면 언제든지 지적 부탁드립니다 :)

    'Courses > Andrew Ng - Machine Learning' 카테고리의 다른 글

    [Week 9] Buidling an Anomaly Detection System  (0) 2022.02.08
    [Week 9] Anomaly Detection  (0) 2022.02.08
    [Week 8] Principal Component Analysis  (0) 2022.01.30
    [Week 8] Motivation  (0) 2022.01.30
    [Week 8] Clustering  (0) 2022.01.27

    댓글

Designed by Tistory.