2017-09-16 13 views
0

나는 파이썬 sklearn을 사용하여 breast_canser 데이터 세트의 주성분 분석을하려고합니다. 왜 고유 벡터의 두 점 (3 개 요소)이 모두 0이 아닌지 이해할 수 없습니까?주 구성 요소 분석 - 왜 고유 벡터의 내적이 0이 아닌지?

frst = pca.components_[0,:] 
scnd = pca.components_[1,:] 
thrd = pca.components_[2,:] 
orth1 = np.dot(frst,scnd) 
orth2 = np.dot(scnd, thrd) 
print(orth1.real) 
print(orth2.real) 

아웃 : 컴퓨터가 무한대로 번호를 나타내는 숫자의 유한 한 양을 사용하므로 부동 소수점 연산은 항상 100 % 정확한

0.0

1.52655665886e 16

+3

가능한 부동 소수점 연산이 있습니까? (https://stackoverflow.com/questions/588004/is-floating-point-math-broken) – Sneftel

답변

3

자릿수. 1.52655665886e-16 ~ machine epsilon 상대 오차의 상한 인해 부동 소수점 연산에, 그래서 0

EDIT로 계산 것 : 당신의 매트릭스는 별개의 고유 값이없는 경우에도이 문제로 실행할 수 있습니다.