[머 신 러 닝] 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) 방 차 가 작은 주성 분 도 견본 의 차이 에 대한 중요 한 정 보 를 포함 할 수 있다. 차원 을 낮 추고 버 리 면 후속 데이터 처리 에 영향 을 미 칠 수 있 기 때문이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.