2012-11-27 2 views
0

2D 데이터 (평균 데이터 정규화)가 있습니다. 나는 그것의 공분산 행렬, 고유치 및 고유 벡터를 안다. 차원을 1로 축소할지 여부를 결정하려고합니다 (주 구성 요소 분석, PCA 사용). 어떻게 결정할 수 있습니까? 그것을위한 방법론이 있습니까?PCA를 사용하여 차원 감소 결정

나는보고있다. 이 비율을 살펴보면이 비율이 높으면 차원 감소로 진행하는 것이 논리적 인 것과 같습니다.

PS 1 : PoV (Variation of Proportion of Variation)는 무엇입니까?

PS 2 : 대답은 다음과 같습니다. https://stats.stackexchange.com/questions/22569/pca-and-proportion-of-variance-explained 테스트 기준은 무엇입니까?

답변

0

PoV (Proportion of variation)는 데이터의 정보가 상대적으로 얼마나 많은지를 나타냅니다. 그것은 일 수 있고, 일 수 있습니다. POV가 높으면 정보가 줄어 듭니다.

0

크기별로 고유 값을 정렬하고 가장 높은 1 또는 2 값을 선택하려고합니다. 상대 값이 매우 작은 고유 값은 제외로 간주 될 수 있습니다. 그런 다음 데이터 값을 변환하고 상단 1 또는 2 고유 벡터 만 사용하여 결과를 플로팅하기위한 치수를 얻을 수 있습니다. 그러면 PCA 분할이 시각적으로 표시됩니다. PCA에 대한 자세한 내용은 scikit-learn을 참조하십시오. 정밀도는, 회상, F1-점수는 ... 그것은 http://sebastianraschka.com/Articles/2014_pca_step_by_step.html에서

얼마나 잘 작동하는지 당신에게 말할 것이다

1 단계 : 3D 예

"우리가 3 차원을 감소하는 우리의 간단한 예를 들어 2 차원 형상 부분 공간을 특징 공간, 우리는 K 차원의 고유 벡터 행렬 WW × KD × 우리 D를 구성하는 최대 고유치와 두 개의 고유 벡터들을 조합되어

matrix_w = np.hstack((eig_pairs[0][1].reshape(3,1), 
        eig_pairs[1][1].reshape(3,1))) 
print('Matrix W:\n', matrix_w) 

>>>Matrix W: 
[[-0.49210223 -0.64670286] 
[-0.47927902 -0.35756937] 
[-0.72672348 0.67373552]]" 

. 단계 2 :D 예

을 516,

는 "마지막 단계에서 , 우리는 우리가 단지 = W^T × X

transformed = matrix_w.T.dot(all_samples) 
assert transformed.shape == (2,40), "The matrix is not 2x40 dimensional." 
식 Y를 통해 새로운 서브 스페이스에 우리의 샘플들을 변환 계산 한 2 × 32 × 3 차원 행렬 WW를 사용