[머 신 러 닝] PCA

3960 단어
목차
  • PCA
  • 1. PCA 의 최대 가분 성 사상
  • 2. 기 변환 (선형 변환)
  • 3. 분산
  • 4. 협 방 차
  • 5. 협 방 차 행렬
  • 6. 협 방 차 행렬 의 대각 화
  • 7. PCA 알고리즘 프로 세 스
  • 8. PCA 알고리즘 총화

  • PCA PCA , 。 PCA , 、 。
    1. PCA 의 가장 큰 가 분 적 사상
    최대 가용성: 견본 점 이 초 평면 에 있 는 투영 은 가능 한 한 분리 된다.
    2. 기본 변환 (선형 변환)
    , ( )。
    3. 분산
    어떻게 한 방향 이나 기 초 를 선택 하 는 것 이 가장 좋 습 니까?PCA 의 최대 가 분 사상 을 바탕 으로 우리 가 찾 아야 할 방향 은 강 차원 후 손실 이 가장 적 고 투영 후의 데이터 가 가능 한 한 분 리 될 수 있다 는 것 으로 이해 할 수 있 으 며 분산 정 도 는 수학 적 인 분산 으로 표시 할 수 있다. 방 차 가 클 수록 데이터 도 분산 되 기 때문이다.
    4. 협 방 차
    고 차원 변환 에서 우 리 는 기 변환 후 선택 한 각 방향 (또는 기) 이 관련 이 없 기 를 바란다. 그래 야 더 많은 정 보 를 표시 할 수 있다.수학 적 으로 협 방 차 를 사용 하여 상관 성 을 표시 합 니 다. \ \ [Cov (a, b) = \ frac {1} {m} \ \ sum {i = 1} ^ {m} a ib i \] 만약 \ (Cov (a, b) = 0 \) 이 라면 두 필드 가 완전히 독립 되 었 음 을 나타 내 는 것 도 우리 의 최적화 목표 입 니 다.
    5. 협 방 차 행렬
    우리 가 달성 하고 자 하 는 목표 (\ (Cov (a, b) = 0 \) 는 필드 내 분산 및 필드 간 협 방 차 와 밀접 한 관 계 를 가진다.만약 에 \ (a, b \) 두 필드 만 있다 고 가정 하고 줄 에 따라 \ (X \) 를 구성 하여 협 방 차 행렬 을 구 합 니 다.
    이 를 통 해 알 수 있 듯 이 협 방 차 행렬 은 대칭 적 인 행렬 이 고 대각선 은 각 차원 의 분산 (필드 내 분산) 이 며 다른 요 소 는 필드 간 의 협 방 차 이 며 이들 은 하나의 행렬 로 통일 되 었 다.
    6. 협 방 차 행렬 대각 화
    우리 의 목 표 는 \ (Cov (a, b) = 0 \) 을 협 방 차 행렬 에서 우리 의 최적화 목 표를 알 수 있 도록 하 는 것 입 니 다. \ (C = \ frac {1} {m} XX ^ T \) 는 협 방 차 행렬 의 대각 화 (대각선 을 제외 한 다른 요 소 는 모두 0 이 고 대각선 은 요 소 를 크기 에 따라 위 에서 아래로 배열 합 니 다).
    유도:
    7. PCA 알고리즘 절차
    입력: \ (n \) 차원 견본 집 \ (X = (x 1, x 2,..., X m) \), 차원 을 낮 출 차원 \ (n ^ {} \)
    출력: 강 차원 후의 견본 집 \ (Y \)
    알고리즘:
    1) 모든 견본 을 중심 으로 \ (x i = x i - \ frac {1} {m} \ sum {j = 1} ^ mx j \)
    2) 계산 견본 의 협 방 차 행렬 \ (C = \ frac {1} {m} XX ^ T \)
    3) 협 방 차 행렬 의 특징 값 과 대응 하 는 특징 벡터 구하 기
    4) 특징 벡터 를 대응 하 는 특징 값 크기 에 따라 위 에서 아래로 행렬 로 배열 하고, 앞 \ (K \) 줄 을 취하 여 행렬 을 구성한다 \ (P \)
    5) \ (Y = PX \) 원시 견본 을 위 한 \ (K \) 차원 으로 내 려 간 데이터 행렬
    코드:
    """
                     dataMat,           ,          (          ,                  ,          )。
    """
    
    import numpy as np
    
    ################################
    # (1)    
    ################################
    def zeroMean(dataMat):        
        meanVal=np.mean(dataMat,axis=0)     #     (axis=0),           
        newData=dataMat-meanVal  
        return newData,meanVal             # newData         ,meanVal        
    
    
    ################################
    # (2)      
    #  rowvar=0,               ;
    #   0,               。
    ################################
    newData,meanVal=zeroMean(dataMat)  
    covMat=np.cov(newData,rowvar=0)        
    
    
    ################################
    # (3)         
    # eigVals     ,   
    # eigVects      ,           
    #               
    ################################
    eigVals,eigVects=np.linalg.eig(np.mat(covMat)) 
    
    
    ################################
    # (4)       n     
    #            eigVals,     m    ,        ,     n            #           ,               n_eigVect
    ################################
    eigValIndice=np.argsort(eigVals)            #            
    n_eigValIndice=eigValIndice[-1:-(n+1):-1]   #   n       ,  argsort            ,     n         ,  eigValIndice[-1:-(n+1):-1]     n         (python  ,list[a:b:c]     a   b,   c)  
    n_eigVect=eigVects[:,n_eigValIndice]        #   n           
    
    
    ################################
    # (5)        
    #            n_eigVect           
    ################################
    lowDDataMat=newData*n_eigVect               #           
    reconMat=(lowDDataMat*n_eigVect.T)+meanVal  #    

    8. PCA 알고리즘 총화
    장점:
    1) 분산 에 만 의존 하여 정 보 량 을 평가 하고 데이터 세트 이외 의 요소 의 영향 을 받 지 않 는 다.
    2) 각 주성 분 간 의 상호 교차 로 원시 데이터 성분 간 의 상호 영향 요 소 를 제거 할 수 있다.
    3) 계산 방법 이 간단 하고 특징 치 분 해 를 주로 활용 한다.
    단점:
    1) 주성 분 의 각 특징 차원 의 의 미 는 일정한 모호 성 을 가지 기 때문에 원시 견본 특징의 해석 성 이 강하 지 않다.
    2) 방 차 가 작은 주성 분 도 견본 의 차이 에 대한 중요 한 정 보 를 포함 할 수 있다. 차원 을 낮 추고 버 리 면 후속 데이터 처리 에 영향 을 미 칠 수 있 기 때문이다.

    좋은 웹페이지 즐겨찾기