작업 II 데이터 압축 _ _ 주성분 분석 (PCA)

작업 2 :
주성분 분석 : 단계, 및 달성하기 위해 응용 프로그램 코드

첫째, PCA는 무엇인가?

1, PCA 소개

에서는 인덱스의 분석을위한 필요성을 감소 원래의 인덱스에 포함 된 정보의 손실을 최소화하면서, 그것은 포괄적 분석을 수행하는 데이터 수집의 목적에 도달했다. 변수 사이이므로 상관이 존재하는 것이 가능하다 의 광범위한 인덱스 각 변수 각각 이하 모든 종류의 종합 정보 . 그 무거운 중량의 기능 또는 저급 폐기 정보의 핵심 요소.

2, PCA 응용 프로그램

요소의 PCA는 주로 매트릭스 데이터 차원 축소 화상에 사용하지 명백한 식별을 위해 사용될 수 없으며, 일부 구성 요소의 특성을 일부 요소는 큰 차이의 명백한 (분산 전체에 대하여 측정 될 수있다 이산), 이들 원소의 샘플들은 이미지 인식에 기초한다. PCA의 역할은 그 작은 차이, 일반 치수, 인식 차원에 찬성 비교적 큰 차이를 제거하는 것입니다. 이 계산의 양을 감소시키는 이미지 행렬의 크기를 감소시킨다.
참조 문서

3 데이터 감소

참조 일반 "선형 대수학":, 데이터 센터에서 N-1 차원 부분 공간을 분석 할 수있을 것이며, N은 시스템의 포인트 N 차원 공간 회전 좌표계.

치수 감소 삼차원의 데이터 요소 때문에, 어떠한 정보도 손실되지 후 상술 한 동작은 삼차원 이차원 환원에 데이터 있지만 데이터 될 것이지만 예를 삼차원 공간 제로이다.
이 경우, 는 z의 데이터라고 가정 '우리가 X를 취할 수 있기 때문에 축이 약간의 지터를 가지고, 우리는 여전히 상기 이차원 데이터에 의해 표현 가능', Y의 '축은 정보 데이터, Z의 주성분이다' 지터는 잡음 일 수있다 .
즉,이 데이터 세트는, 관련 데이터의 불완전한 도입의 노이즈 결과를 상관 될 것이지만, (Z)의 데이터 "매우 작은 이루어지는 기원 축 각도 분포는 Z '는 큰을 갖는 축 함께 상관은, 데이터 X ', Y'는 주성분 데이터에 돌출부를 구성하는 것으로 간주 될 수있다.

PCA가 주성분이라고하는 (K <N), K 개의 새로운 차원의 직교 특성을 N 차원 K 차원 피쳐 맵 생각된다.

유의 :
1, K 새로운 차원 재 구축, 오히려 단순히 N 차원 특징으로부터 잔여 NK 차원 기능을보다 제거.
2, 새로운 콘크리트 차원의 실제 의미는 알고 만 기계를 모르는 K로 표현.
참조 문서

둘째, 선형 대수 지식 기반

1 변환 그룹의 행렬 표현

일반적으로, 만약 우리가 M N 차원 벡터가, 그 새로운 N 차원 벡터 공간 R이 표시되는 행렬 A에 의한 R 열의 후 처음 두 그룹, 벡터는 열 B의 매트릭스로 구성되어 원하는 변환하여, 두 개의 행렬 AB의 생성물은 상기 AB m 번째 컬럼 변환의 결과 인 m로, 결과를 변환된다. 그림 삽입 설명 여기
R은 N보다 작은 수 있고, R는 데이터 변환 사이즈들의 수를 결정한다. 즉, 상기 변환은 그룹의 수에 의존 한 후 우리는 차원 낮은 차원의 N 차원 공간으로 데이터를 변환 할 수있다. 따라서이 행렬 곱셈 표현 치수 감소는 변형을 나타낼 수있다.

행렬 곱셈은 찾을 물리적 설명 :
의의 개의 행렬 곱셈이다 각 벡터의 왼쪽 공간 그룹에 의해 표현 트레킹 오른쪽 열 벡터 행렬 변환 행렬의 각 열 (각 열은의 결과를 나타낸다 치수 m).
선형 변환 행렬을 나타낼 수 있음을 추상적.

2 공분산 행렬

- 공분산 (제로 평균 가정) :

V ( , ) = 1 미디엄 Σ 나는 = 1 미디엄 나는 나는 COV \ (오른쪽 A, B \) = \ FRAC {1} {m} \ 합 ^ {m} _ {I = 1}을 남겨 A_ {I} B_ {I} 직관적에서 공분산은 원하는 전체 오차의 두 가지 변수에 의해 표현된다.

- 공분산 행렬 :

공분산 행렬을 계산하기보다는 상이한 샘플 사이보다는 다른 차원의 공분산이다.
그림 삽입 설명 여기
행렬의 대각선 위치 값의 요소 분산다른 위치의 값은 소자 사이의 공분산이다 .

  • 신호 강한 대각선의 요소가 클수록, 더 중요한 변수는 엘리먼트는 작은 노이즈가 없거나 보조 변수있다 나타낸다.
  • 관측 된 변수 쌍의 중복의 정도와의 상관 관계의 크기에 대응하는 크기의 온 - 대각 요소.

제공자 A는 원시 데이터 행렬이고, M은 (가) 변환 행렬 좌표이고, K는 데이터 매트릭스 사이즈 감소, 우리는 :
× 미디엄 × 케이 = × 케이 A_ {N \ 배 D} \ cdot M_ {P \ 시간 K} = L_ {N \ 시간 K} 특징 에 대응하는 공분산 행렬 C , L은 공분산 행렬에 대응하는 D를 다음과 같이 C와 D의 관계가 도출된다 :
C P × P = 1 N A T A C_ {P \ 배 P} = \ FRAC {1} {N}는 ^ {T} \ cdot D = 1 N ( A M ) T ( A M ) = 1 N M T A T A M D = \ FRAC {1} {N} \ 좌측 (우측 AM \) (AM \ 오른쪽) ^ {T} \ cdot \ 왼쪽 = \ FRAC {1} {N} \ cdot M ^ {T}는 ^ {T }오전 = M T ( 1 N A T A ) M = M T C M M = ^ {T} \ 좌측 (\ FRAC {1} {N}는 ^ {T}는 \ 오른쪽) M = M ^ {T} CM 목표 :D대각선으로 만 값이 대각 행렬

상기 변환 매트릭스 좌표 해결 이후 M의 문제하는 것은 실제 대칭 행렬로 변환 할 수있다 문제는 고유 벡터 행렬로 구성 해결 대각을한다.

특징 벡터의 크기에 해당하는 특징 값을 나타냅니다 중요성의 정도를 .
원래의 데이터 행렬 A를 행렬의 첫번째 K 열로 왼쪽에서 오른쪽으로 특징 벡터의 크기의 곱 M은 , 데이터 매트릭스는 우리가 필요로하는 차원 축소 후에 얻어진 L을 .

세, PCA 구현 단계

이는 M 개의 N 차원 데이터를 갖는다.

  1. m 행 n 열의 행렬 X.하여 원시 데이터 열
  2. X 각 열 (a 나타내는 속성 필드)은 평균이 0, 즉, 데이터의 열들의 평균을 차감하여 전처리된다.
  3. 계산 된 공분산 행렬 COV.
  4. 구하기위한 공분산 행렬의 고유 값과 대응.
  5. 고유 행렬 첫번째 K 열을 고려하여 왼쪽에서 오른쪽으로 배치되는 크기에 대응하는 행렬의 고유 벡터에 의해 P.
  6. Y는 = XP는 사이즈 K의 데이터 사이즈 감소이다

넷째, 프로그램 구현

여기 파이썬 NumPy와 라이브러리 구현을 기반으로

import numpy as np


def zeroMean(dataMat):
    average = np.mean(dataMat, axis=0)  # 按列求均值
    new_dataMat = dataMat - average
    return new_dataMat


def pca(dataMat, n):
    new_dataMat = zeroMean(dataMat)
    covMat = np.cov(new_dataMat, rowvar=0)  # covMat极为所求的协方差矩阵

    # Compute the eigenvalues and right eigenvectors of a square array.
    # 返回矩阵的特征值和特征向量
    # eigVects 每一列代表一个特征向量
    eigVals, eigVects = np.linalg.eig(np.mat(covMat))

    eigValsSort = np.argsort(eigVals)  # argsort对特征值是从小到大排序,提取其对应索引号

    n_eigValsSort = eigValsSort[-1:-(n + 1):-1]  # 提取最大的n个特征值的下标
    n_eigVects = eigVects[:, n_eigValsSort]
    low_dataMat = new_dataMat * n_eigVects

    return low_dataMat
출시 세 원저 · 원의 칭찬 0 · 조회수 (114)

추천

출처blog.csdn.net/weixin_41821317/article/details/104442386